ruby - How do I add to a rails session when submitting to same page? -
i have need number of form pages in row each form submits same index page. on each submit different view displayed depending on how input fields validated.
controller:
class formscontroller < applicationcontroller include formshelper def index #if know view show, show it, else show first view in flow if(!session.has_key?(:flow_page)) set_flow_page end # if form submitted, want add pages submit data have in session[:quote] if(params.has_key?(:form)) temp = params[:form] form = session[:quote] form.merge(temp) #session[:quote].deep_merge!(session[:temp]) end # other stuff if params[:back] == "back" && params[:flow][:previous_page] != "refused" session[:flow_page] = params[:flow][:previous_page] end if params[:next] == "next" session[:flow_page] = params[:flow][:next_page] end end end
could tell me how add form data each view session[:quote] without overwriting whole block each time?
not sure trying lets assume want keep history of forms hit same method on submit. bellow code work need add hidden form field uid each form. name field "form_name"
# init form cache, if not initiated before session[:quote] = {} unless session.has_key(:quote) # keys excluded filter_out = [:form_name,:controller, :action] # store cache, form uid / filter out params don't need session[params[:form_name]] = params.dup.keep_if { |k,v| !filter_out.include?(k) }
Comments
Post a Comment