instance method
redirect_to
Ruby on Rails 2.2.3
Since v2.2.3 Last seen in v2.3.18Available in: v2.2.3 v2.3.18
Signature
redirect_to(options = {}, response_status = {})
Redirects the browser to the target specified in options. This parameter can take one of three forms:
-
Hash- The URL will be generated by calling url_for with theoptions. -
Record- The URL will be generated by calling url_for with theoptions, which will reference a named URL for that record. -
Stringstarting withprotocol://(likehttp://) - Is passed straight through as the target for redirection. -
Stringnot containing a protocol - The current protocol and host is prepended to the string. -
:back- Back to the page that issued the request. Useful for forms that are triggered from multiple places. Short-hand forredirect_to(request.env["HTTP_REFERER"])
Examples:
redirect_to :action => "show", :id => 5 redirect_to post redirect_to "http://www.rubyonrails.org" redirect_to "/images/screenshot.jpg" redirect_to articles_url redirect_to :back
The redirection happens as a “302 Moved” header unless otherwise specified.
Examples:
redirect_to post_url(@post), :status=>:found redirect_to :action=>'atom', :status=>:moved_permanently redirect_to post_url(@post), :status=>301 redirect_to :action=>'atom', :status=>302
When using redirect_to :back, if there is no referrer, RedirectBackError will be raised. You may specify some fallback behavior for this case by rescuing RedirectBackError.
Parameters
-
optionsopt = {} -
response_statusopt = {}
Source
# File actionpack/lib/action_controller/base.rb, line 1056
def redirect_to(options = {}, response_status = {}) #:doc:
raise ActionControllerError.new("Cannot redirect to nil!") if options.nil?
if options.is_a?(Hash) && options[:status]
status = options.delete(:status)
elsif response_status[:status]
status = response_status[:status]
else
status = 302
end
response.redirected_to = options
logger.info("Redirected to #{options}") if logger && logger.info?
case options
# The scheme name consist of a letter followed by any combination of
# letters, digits, and the plus ("+"), period ("."), or hyphen ("-")
# characters; and is terminated by a colon (":").
when %r{^\w[\w\d+.-]*:.*}
redirect_to_full_url(options, status)
when String
redirect_to_full_url(request.protocol + request.host_with_port + options, status)
when :back
if referer = request.headers["Referer"]
redirect_to(referer, :status=>status)
else
raise RedirectBackError
end
else
redirect_to_full_url(url_for(options), status)
end
end
Defined in actionpack/lib/action_controller/base.rb line 1056
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActionController::Base