将状态代码添加到Rails 3中的:root重定向会导致恼人的“您正被重定向”页面

时间:2011-02-07 14:58:48

标签: ruby-on-rails ruby-on-rails-3

此代码正在rescue_from执行。

这有效:

redirect_to :root, :notice => 'Mice'

这会导致Rails 3生成“您正被重定向”页面:

redirect_to :root, :status => 403, :notice => 'Mice'

有类似的问题,但我没有看到任何近期或完全符合这种情况。我做错了吗?

1 个答案:

答案 0 :(得分:8)

由于浏览器的行为,您看到此页面。 403告诉浏览器请求已完成且状态为“禁止”。您需要发送3xx系列状态代码才能进行重定向。在没有显式代码的情况下使用redirect_to会发送302。

请注意,如果您使用curl测试第二个示例,则会看到302和403状态代码的“您正在被重定向”页面。 redirect_to无论如何都会将其发送回响应,但是浏览器会决定如何处理请求。