On 21 February 2011 03:34, James allan To <[email protected]> wrote: > Hi I would just like to ask if someone can point me to the right > direction. I have an order page which will need to be split into 3 views > before saving say in controller: > > def new > @order = Order.new > end > > def process_new > @order = Order.new(params[:order]) > #do validation for new > # redirect to no_of_attendees > end > > def no_of_attendees > @order = Order.new(params[:order]) > end > > def process_no_of_attendees > @order = Order.new(params[:order]) > #do validation > #redirect to save page > end > > Question: Is there aright way of doing this (carry params values between > views) or should I just place the data from new in session as we move to > forward to the third page create a hash from session and save in model?
If all you are passing back each time is the latest data for the order, so you can do Order.new(params[:order]) as you have shown, then there is no reason to complicate things by using the session. You might like to consider whether the controller (and maybe the view) would be simplified by combining the actions (and maybe views) and passing up and back a phase value to indicate which phase of the operation is current. Make sure you do the validation in the model so that at each action you are just asking the model to validate itself, rather than putting validation code in the controller. Colin -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

