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"=>"[email protected]"},
 "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"=>"[email protected]"},
 "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 [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.

Reply via email to