我正在尝试设置Devise将401返回到未经授权的API请求而不是重定向,但我遇到了一块巨石.这就是我如何重写它的自定义失败行为:
class CustomFailure < Devise::FailureApp include ActionController::Head include ActionController::MimeResponds def respond respond_to do |format| format.html { super } format.any { head :status => 401} end end end
但是,我收到此错误:
undefined local variable or method `lookup_context' for #<CustomFailure:0x000001031f6220>
它指向respond_to do | format |线
我究竟做错了什么?
解决方法
def respond unless request.format.to_sym == :html http_auth else super end end
Devise :: FailureApp继承自ActionController :: Metal,它与Rack在低级别上进行交互,所以没有respond_to查看相关的东西