У меня была такая же проблема, и я исправил ее, сделав это:
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
.