2013-03-25 72 views
1

我正在製作一個Rails應用程序,該應用程序將Rolify gem與Devise和CanCan結合使用。在使用Rolify時不能訪問控制檯中的用戶

運行rolify發電機這樣

rails g rolify:role 

把rolify方法在用戶模型的頂部像這樣

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] 

我認爲這不是預期的行爲。任何人都可以提出解決方案如果我無法在控制檯中訪問用戶模型,那麼使用rolify並不值得。

回答

1

智子,嘗試rolify之前添加extend Rolify,像這樣:

class User < ActiveRecord::Base 
    extend Rolify 
    rolify 
end 
+0

謝謝,我沒有看到,在該文檔中提到的。 – 2013-03-26 00:13:32

+0

不客氣,朋友,很高興我能提供幫助。 – 2013-03-26 00:19:05