2011-01-18 13 views
0

ここで私を助けてくれることを願っています。 割り当て表を使用してユーザーのロールタイトルを表示

私はロールモデルを得た:
has_many :users, :through => :role_assignments
has_many :role_assignments

役割の割り当てモデル:
belongs_to :user
belongs_to :role

とユーザモデル:
has_many :roles, :through => :role_assignments
has_many :role_assignments

は、私は、ユーザーの役割を表示したいですビュー。 user.roles.namesのようなものを試しましたが、それはうまくいきませんでした。

答えて

2

user.rolesはロールのコレクション(配列)なので、直接名前を呼び出すことはできません。今、私はあなたが行うことができ、その場合のように、アクセスしたい属性は名前があることを前提としています

user.roles.map(&:name).join(", ") 

がどのロールからすべての名前を収集して、カンマで区切られた文字列にそれらを結合します。それは非常に簡単で、あまり柔軟ではありません。代わりに、何らかの方法でスタイルを設定したい場合は、次のようにすることができます。

<% user.roles.each do |role| %> 
    <p>Role: <%= role.name %></p> 
<% end %> 
+0

ありがとうDanne!どちらもうまくいく! – daniel

関連する問題