2016-11-21 5 views
0

私のRailsアプリケーションでは、ユーザ、ロール、権限があります。Railsで深くネストされたオブジェクトにアクセス

class User < ActiveRecord::Base 
    has_and_belongs_to_many :roles, :join_table => 'users_roles' 
end 

class Role < ActiveRecord::Base 
    has_and_belongs_to_many :users, :join_table => 'users_roles' 
    has_and_belongs_to_many :permissions, :join_table => 'roles_permissions' 
end 

class Permission < ActiveRecord::Base 
    has_and_belongs_to_many :roles, :join_table => 'roles_permissions' 
end 

権限をリスト私がその許可のためのロールとユーザーの数を取得したい:次のように

関連付けがされています。

私にできること

<% @permissions.each do |permission| %> 
    <%= permission.roles.count %> 
<% end %> 

しかし、私がしなければ:

<% @permissions.each do |permission| %> 
    <%= permission.roles.users.count %> 
<% end %> 

私はusersが定義されていないというエラーが出ます!

私は私のコントローラで

@permissions = Permission.includes(roles: :users) 

だからだけでなく、ユーザーによって引っ張っする必要があります...

+0

を呼び出しますユーザモデルとの関連付けをそのオーダーで追加する –

答えて

0

これは動作しないことができるあなたの「permission.rolesは、」正確に配列(またはそれ以上であるため、関係)、定義された「ユーザー」メソッドはありません。それはテストされたなし

、それが動作するはずです:

あなたが持つ権限にユーザーの関係を追加することができます「:=>を通じて:役割」とし、ちょうどあなたがする必要があるpermission.users.count

関連する問題