module ActionController::Redirecting

def redirect_back(fallback_location:, allow_other_host: true, **args)

options and the behavior is identical.
All other options that can be passed to redirect_to are accepted as

* :allow_other_host - Allow or disallow redirection to the host that is different to the current host, defaults to true.
* :fallback_location - The default fallback location that will be used on missing +Referer+ header.
==== Options

redirect_back fallback_location: '/', allow_other_host: false
redirect_back fallback_location: proc { edit_post_url(@post) }
redirect_back fallback_location: posts_url
redirect_back fallback_location: "/images/screenshot.jpg"
redirect_back fallback_location: "http://www.rubyonrails.org"
redirect_back fallback_location: @post
redirect_back fallback_location: { action: "show", id: 5 }

is missing this header, the fallback_location will be used.
subject to browser security settings and user preferences. If the request
the request. This is an optional header and its presence on the request is
The referrer information is pulled from the HTTP +Referer+ (sic) header on

location.
if possible, otherwise redirects to the provided default fallback
Redirects the browser to the page that issued the request (the referrer)
def redirect_back(fallback_location:, allow_other_host: true, **args)
  referer = request.headers["Referer"]
  redirect_to_referer = referer && (allow_other_host || _url_host_allowed?(referer))
  redirect_to redirect_to_referer ? referer : fallback_location, **args
end