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