Ruby on rails rake db:reseed abort

时间:2012-06-24 20:02:20

标签: ruby-on-rails ruby mongodb mongoid

我有一个问题Rolify。当我在shell中使用命令rake db:reseed时,要重置我的数据库,我有这个错误:

  客户的未定义局部变量或方法`rolify':Class

这是我的模型与Rolify的代码:

class Customer
  include Mongoid::Document
  include Mongoid::Timestamps
  rolify
  embeds_one :contact
  has_many :orders

  devise :database_authenticatable, :recoverable, :registerable, :timeoutable, :validatable,
         :token_authenticatable, :confirmable

  attr_accessible :email, :password, :password_confirmation, :add_role

  field :first_name
  field :last_name
  field :password
  field :gender
  field :confirmed_at
  field :unconfirmed_email
  field :confirmation_url
  field :confirmation_token
  field :confirmation_sent_at
  field :email
  field :encrypted_password

  gender_regex = /^(Male|Female)$/

  validates :first_name, presence: true, :allow_blank => true
  validates :last_name, presence: true, :allow_blank => true
  validates :password, presence: true
  validates :gender, presence: true, :allow_blank => true,
                     format: { with: gender_regex }
end

如果你知道原因,请帮帮我:)。

2 个答案:

答案 0 :(得分:0)

从您的rolify型号中删除Customer 您需要按照https://github.com/EppO/rolify

上的说明操作

您应该将其添加到Gemfile而不是模型中

gem "rolify"

在要应用角色的资源模型中,您必须包括:

resourcify

我认为这是你的错误......

答案 1 :(得分:0)

回答可能会迟到,但是为了那些可能仍然面临这种问题的人。

我通过在模型中添加rolify和resourcify后重新启动我的服务器来修复此问题。