Rails视图:加入has_many关系而不是迭代它们?

den*_*nis 2 arrays ruby-on-rails view relationship

Rails视图:加入对象

嗨,

考虑与模型Role具有has_many关系的模型User的show视图.我想遍历属于某个用户的所有相关角色.现在它看起来像这样:

<div>associated roles:</div>
<ul>
<% @user.roles.each do |r| %>
<li><%= r.name %></li>
<% end %>
</ul>
Run Code Online (Sandbox Code Playgroud)

例如,结果如下:

associated roles:
* registered
* manager
* administrator
Run Code Online (Sandbox Code Playgroud)

我的问题:

是否有类似Rails的方式获得如下所示的输出而不必遍历整个数组?

associated roles:
registered, manager, administrator
Run Code Online (Sandbox Code Playgroud)

我尝试了加入方法......

<div>associated roles:</div>
<%= @user.roles.join(",") %>
Run Code Online (Sandbox Code Playgroud)

......但结果是......

associated roles:
#<Role:0xb6dde328>,#<Role:0xb6dde2ec>,#<Role:0xb6dde1f5>
Run Code Online (Sandbox Code Playgroud)

有点像......

<div>associated roles:</div>
<%= @user.roles.join(",").name %>
Run Code Online (Sandbox Code Playgroud)

...导致未定义的方法"名称"错误.优雅方式的任何提示?

谢谢

Chr*_*tto 5

@user.roles.collect(&:name).join(",")
Run Code Online (Sandbox Code Playgroud)