Ruby-on-Rails:如何摆脱“你被重定向”的页面

前端之家收集整理的这篇文章主要介绍了Ruby-on-Rails:如何摆脱“你被重定向”的页面前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我覆盖了Devise的失败响应,以便我可以设置401状态代码.但是,当用户登录失败时,将被重定向到具有“您被重定向链接页面.如果我删除:status => 401从重定向它工作正常.
class CustomFailure < Devise::FailureApp
    def redirect_url
      new_user_session_url(:subdomain => 'secure')
    end

    def respond
        if http_auth?
           http_auth
        else
           store_location!
           flash[:alert] = i18n_message unless flash[:notice]
           redirect_to redirect_url,:status => 401
        end
    end
end

编辑

或者,我想显示Flash消息并保留在同一页面上,但添加以下代码行:

render :text => "unauthorized",:status => 401

造成红宝石抱怨:

undefined method `render' for #<CustomFailure:0x00000103367f28>

这里发生了什么

解决方法

重定向的适当HTTP状态为30x格式(301和302是最常用的).默认情况下,redirect_to帮助器在HTTP响应中设置302状态标题.如果您重写并将其设置为401,则Web浏览器将假定响应是常规网页,并将渲染响应正文 – 重定向是“您正被重定向”的样板文本.
原文链接:https://www.f2er.com/ruby/272901.html

猜你在找的Ruby相关文章