Link back to page visited before form Link back to page visited before form ruby-on-rails ruby-on-rails

Link back to page visited before form


Try this

<%= link_to 'Back', url_for(:back) %># if request.env["HTTP_REFERER"] is set to "http://www.example.com"# => http://www.example.com

here is more details.


Well, you can set a method in the form page to collect that url. The basic idea is to use a custom session variable to store previous url and keep it to next session.

Suppose your form's action is SomeController#new, then

class SomeController < ApplicationController  after_action "save_my_previous_url", only: [:new]  def save_my_previous_url    # session[:previous_url] is a Rails built-in variable to save last url.    session[:my_previous_url] = URI(request.referer || '').path  endend

Then in the thank you page, you can get this my_previous_url by

 session[:my_previous_url]

This should be able to suit your case, the previous url two pages ago.

Disclaimer: This is not verified. Idea only.

Add

Session belongs to controller. It is not a helper you can use directly in view. You need to define an instance variable in controller and then you can use it in view. Like this

# Controller@back_url = session[:my_previous_url] # View<%= link_to "Back", @back_url %>


You can use the example from Rails API:

<%= link_to "Back", :back %>

Rails API Doc for link_to

Using a :back Symbol instead of an options hash will generate a link to the referrer (a JavaScript back link will be used in place of a referrer if none exists).