1

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

像这样运行 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 -v
    ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0]

我认为这不是预期的行为。任何人都可以提出解决方案。如果我无法在控制台中访问 User 模型,我就不值得使用 rolify。

4

1 回答 1

1

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

class User < ActiveRecord::Base
  extend Rolify
  rolify
end
于 2013-03-25T22:21:30.827 回答