我正在覆盖 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>
这里发生了什么事?