Rails 中在部分内部创建逗号分隔列表的最优雅的方法是什么?
我最近发现您可以使用部分来迭代从另一个视图模板发送的集合。所以在视图模板中我有:
<% render @dvd.director %>
然后在/view/directors/_director.html.erb中:
<%= director.director %>
这实际上做了类似的事情:
@dvd.director.each { |d| puts d.director }
现在,我知道我可以像这样使用 .join :
<% @dvd.director.map { |t| t.director }.join(", ") %>
但是,由于部分已经迭代了数组中的每个条目,因此如何正确分隔列表并且不让最后一个(或单个)在末尾带有丑陋的逗号?
很多作品只有一位导演,我只是想将那些有不止一位导演的作品正确分开。我知道我可以手动完成所有这些工作(使用普通的非迭代部分并自己创建 .each 循环),但我正在尝试以 Rails 方式完成并学习。
Thanks.
Edit
为了更好地解释一下,@dvd.director 返回一个 ActiveRelation 对象,如下所示:
[#<Director id: 13, director: "Andrew Stanton">, #<Director id: 14, director: "Lee Unkrich">]
所以我不能只是这样做@dvd.director.join(', ')
除了获取数据之外还有其他方法吗
@dvd.director.each { |dir| dir.director }
因为我也有同样的问题,所以我必须对它们进行计数,或者确保它不是最后一项,然后再在它们之间添加逗号,或者仅提取导演姓名并将它们放入字符串或类似的内容中。如果我能加入那就太好了。