`method_missing':未定义的方法`devise_modules'

时间:2018-10-04 14:39:41

标签: ruby-on-rails ruby devise

我正在尝试将模型与RoR应用程序分离为一个宝石。当我从gem扩展User模型以添加Devise instance methods

时出现错误

我尝试了不同的方法

  1. User.class_eval和ModelsGem :: User.class_eval
  2. 单表继承,例如:class SuperClass < ModelsGem::User; end
  3. 覆盖模型类,例如class User < ActiveModel::Base

它们都没有与dev一起工作。但是,我可以从应用程序中的gem访问User模型的方法,并且除devise之外,其他一切都按预期工作。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作

rails g devise:views
rails g devise user

如果我们想添加sth之类的名字和姓氏,则在耙db:migrate之前将其放在数据库中

 t.string :first_name
 t.string :last_name

然后rake db:migrate

在用户模型中

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable, :confirmable

  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable, :confirmable
end

希望我能解决您的问题