Hi Folks,
I''m writing a multistep form with the the help of Ryan Bates
http://railscasts.com/episodes/217-multistep-forms
but I want change a little the form after the confirmation redirect to
the notification page that appear to the user to communicate that the
form just filled out I want that the user can''t back with the
''Browser
Back Button'' at the confirmation page (the previous page)
to explain better what I want for me:
A = is the confirmation page
B = is the notification page
Thanks to Google I found this page
http://blog.serendeputy.com/posts/how-to-prevent-browsers-from-caching-a-page-in-rails/
And to the application_controller.rb I put
before_filter :set_cache_buster
def set_cache_buster
response.headers["Cache-Control"] = "no-cache, no-store,
max-age=0,
must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00
GMT"
end
so when the user is on B when click on the browser back button on Safari
a dialog box appear
***********************************************
Are you sure that you want send a form again?
To reopen this page Safari must resend a form. This might result in
duplicate purchases, comments, or other actions.
{Cancel Button} / {Send Button}
***********************************************
If the user click on the {Cancel Button} button stay in the page if
click on {Send Button} appear an Rails error page
***********************************************
NoMethodError in FormonlineController#create
undefined method `deep_merge!'' for nil:NilClass
Rails.root: /var/www/myappname
Application Trace | Framework Trace | Full Trace
app/controllers/formonline_controller.rb:24:in `create''
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"Q/p7DxoyeTO8A94qEeHBkvsaAFKIVwMBadHYTDipxDM=",
"formonline"=>{"richiedente"=>"safas",
"email"=>"postmasetr-cQXwUfdaDmBl57MIdRCFDg@public.gmane.org"},
"commit"=>"Continue"}
************************************************
on the 24 raw of form online
*************************************************
22. def create
24. session[:formonline_params].deep_merge!(params[:formonline]) if
params[:formonline]
25. @formonline = Formonline.new(session[:formonline_params])
26. @formonline.current_step = session[:formonline_step]
27. if @formonline.valid?
28 if params[:back_button]
29 ........
35. ..........
*************************************************
Instead in the MOZILLA FIREFOX in the page appear a message
*************************************************
Document Expired
This document is no longer available.
The requested document is not available in Firefox''s cache.As a
security
precaution, Firefox does not automatically re-request sensitive
documents.Click Try Again to re-request the document from the website.
{Try Again Button}
**************************************************
After the user click ok {Try Again Button} receive the same error
message on Safari with the Rails error page
***********************************************
NoMethodError in FormonlineController#create
undefined method `deep_merge!'' for nil:NilClass
Rails.root: /var/www/myappname
Application Trace | Framework Trace | Full Trace
app/controllers/formonline_controller.rb:24:in `create''
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"Q/p7DxoyeTO8A94qEeHBkvsaAFKIVwMBadHYTDipxDM=",
"formonline"=>{"richiedente"=>"safas",
"email"=>"postmasetr-cQXwUfdaDmBl57MIdRCFDg@public.gmane.org"},
"commit"=>"Continue"}
************************************************
MY ISSUE
Is possible that the User when click on the back button stay on the same
page?
I hope my issue is clear and thank you in advance
Cluter
--
Posted via http://www.ruby-forum.com/.
--
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.