Method: ActionController::Redirecting#redirect_back_or_to
- Defined in:
- actionpack/lib/action_controller/metal/redirecting.rb
#redirect_back_or_to(fallback_location, allow_other_host: _allow_other_host, **options) ⇒ Object
Redirects the browser to the page that issued the request (the referrer) if possible, otherwise redirects to the provided default fallback location.
The referrer information is pulled from the HTTP Referer (sic) header on the request. This is an optional header and its presence on the request is subject to browser security settings and user preferences. If the request is missing this header, the fallback_location will be used.
redirect_back_or_to({ action: "show", id: 5 })
redirect_back_or_to @post
redirect_back_or_to "http://www.rubyonrails.org"
redirect_back_or_to "/images/screenshot.jpg"
redirect_back_or_to posts_url
redirect_back_or_to proc { edit_post_url(@post) }
redirect_back_or_to '/', allow_other_host: false
#### Options
-
:allow_other_host- Allow or disallow redirection to the host that is different to the current host, defaults to true.
All other options that can be passed to #redirect_to are accepted as options, and the behavior is identical.
148 149 150 151 152 153 154 155 156 |
# File 'actionpack/lib/action_controller/metal/redirecting.rb', line 148 def redirect_back_or_to(fallback_location, allow_other_host: _allow_other_host, **) if request.referer && (allow_other_host || _url_host_allowed?(request.referer)) redirect_to request.referer, allow_other_host: allow_other_host, ** else # The method level `allow_other_host` doesn't apply in the fallback case, omit # and let the `redirect_to` handling take over. redirect_to fallback_location, ** end end |