在rails 4中,我有下面的装饰代码。效果很好
app/decorators/models/user_decorator.rb
User.class_eval do
devise :omniauthable
end现在我正在将rails升级到版本5,但这给我带来了错误。
映射非万能资源上的omniauth_callbacks --请将
devise :omniauthable添加到User模型中
我所有的模型都是在单独的创业板,我没有设计安装在宝石。这就是为什么我使用上面的装饰器在我的应用程序中添加设计。如何在rails-5中实现相同的功能?
发布于 2020-05-21 13:40:01
试着用设计来装饰用户模型:无所不能。从您提供的背景来看,class_eval不起作用的原因并不明显。这可能与rails内部魔术有关,rails内部魔术可能已经从rails 4变为5,因此使用一种关注点--向模型添加行为的"rails方式“--可能会解决您的问题。
module OmniauthableUser
extend ActiveSupport::Concern
included do
devise :omniauthable
end
end
app/decorators/models/user_decorator.rb
User.include OmniauthableUserhttps://stackoverflow.com/questions/61929243
复制相似问题