1

DeviseとCanCanでRolifygemを使用する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バージョン

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

これは予期された動作ではないと思います。誰かが解決策を提案できますか?コンソールでユーザーモデルにアクセスできない場合は、rolifyを使用する価値はありません。

4

1 に答える 1

1

朋子、extend Rolify次のように、rolifyの前に追加してみてください:

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