This is my note about friendly forwarding in Rails.
When forwarding to the URL immediately before current one
... def destroy @micropost.destroy flash[:success] = "Micropost deleted" redirect_to request.referrer || root_url end ...
When forwarding to the URL further before
Store the URL in the
session ahead of time.
module SessionsHelper ... # Redirects to stored location (or to the default). def redirect_back_or(default) redirect_to(session[:forwarding_url] || default) session.delete(:forwarding_url) end # Stores the URL trying to be accessed. def store_location session[:forwarding_url] = request.original_url if request.get? end end
- Returns the previous request URL as a String.
- The same as
- Returns the original request URL as a String.
# get "/articles?page=2" request.original_url # => "http://www.example.com/articles?page=2"