重定向状态:401挂起“您正在被重定向”。如何强制重定向?

时间:2016-08-24 13:19:35

标签: ruby-on-rails ruby-on-rails-4

我正在使用rails 4看到未经授权的401重定向的以下页面:

enter image description here

我对这个页面渲染没问题,但是对于页面悬挂不行。

锚文本'redirected'的链接在重定向到正确的页面时工作正常,但必须单击它。换句话说,消息不正确,我没有被主动重定向。

如何强制重定向?

以下是在action_controller/metal

中启用此功能的代码
def redirect_to(options = {}, response_status = {}) #:doc:
  raise ActionControllerError.new("Cannot redirect to nil!") unless options
  raise AbstractController::DoubleRenderError if response_body

  self.status        = _extract_redirect_to_status(options, response_status)
  self.location      = _compute_redirect_to_location(request, options)
  self.response_body = "<html><body>You are being <a href=\"#{ERB::Util.unwrapped_html_escape(location)}\">redirected</a>.</body></html>"
end

1 个答案:

答案 0 :(得分:1)

将此添加到您的视图

<script>
setTimeout(function(){ window.location.href = 'your_url_here' }, 3000);
</script>

或者你的控制器里可能是这样的东西

def redirect_to(options = {}, response_status = {})
  super
  self.response_body = "<html><body><script>setTimeout(function(){ window.location.href = \"#{ERB::Util.unwrapped_html_escape(location)}\" }, 3000);</script>You are being <a href=\"#{ERB::Util.unwrapped_html_escape(location)}\">redire‌​cted</a>.</body></ht‌​ml>"
end