我在我的应用程序控制器中覆盖了我的身份验证方法
def authenticate_worker!
if user_signed_in? && current_user.worker?
authenticate_user!
else
super
end
end
我一直在
wrong number of arguments (1 for 0)
app/controllers/application_controller.rb:51:in `authenticate_worker!'
知道我错过了什么吗?谢谢!
答案 0 :(得分:2)
我遇到了同样的问题并修复了这个问题:
class ApplicationController < ActionController::Base
protected
def authenticate_user!(opts={})
opts[:scope] = :user
warden.authenticate!(opts) if !devise_controller? || opts.delete(:force)
flash[:alert] = "I always have to monkeypatch devise... because I'm lazy to use the sorcery gem."
end
end
所以,包装。起来,复制并粘贴上面的代码,并在确定用户通过身份验证后,将flash [:alert]替换为您要执行的操作。
由于wrong number of arguments (1 for 0)
可选参数而发生opts
错误。
答案 1 :(得分:0)
{:force=>true}
不知道那个论点做了什么......