Ruby-on-Rails:设计自定义故障应用程序问题

时间:2010-11-30 09:40:08

标签: ruby-on-rails ruby devise

我正在尝试设置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|

我做错了什么?

1 个答案:

答案 0 :(得分:7)

def respond
  unless request.format.to_sym == :html
    http_auth
  else
    super
  end
end

Devise :: FailureApp是ActionController :: Metal的继承形式,它在低级别与Rack交互,所以没有respond_to查看相关的东西