使用Rolify时无法在控制台中访问用户

时间:2013-03-25 21:08:58

标签: ruby-on-rails rolify

我正在制作一个Rails应用程序,它使用Devise和CanCan的Rolify gem。

像这样运行rolify生成器

rails g rolify:role

将rolify方法放在Users模型的顶部,如此

class User < ActiveRecord::Base
  rolify

除了创建Role.rb模型。

   class Role < ActiveRecord::Base
     has_and_belongs_to_many :users, :join_table => :users_roles
     belongs_to :resource, :polymorphic => true

     scopify

   end

我尚未对rolify做过任何其他事情。但是,当我尝试在rails控制台中加载用户时,出现以下错误。

>> User.all
NameError: undefined local variable or method `rolify' for #<Class:0x007f813d32ce48>

我正在使用Rails 3.2.12

Ruby版本

    ruby -v
    ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]

我认为这不是预期的行为。有谁能提出解决方案。如果我无法在控制台中访问用户模型,那么使用rolify对我来说是不值得的。

1 个答案:

答案 0 :(得分:1)

Tomoko,尝试在rolify之前添加extend Rolify,如下所示:

class User < ActiveRecord::Base
  extend Rolify
  rolify
end