我正在制作一个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对我来说是不值得的。
答案 0 :(得分:1)
Tomoko,尝试在rolify之前添加extend Rolify
,如下所示:
class User < ActiveRecord::Base
extend Rolify
rolify
end