Rails中用于在部分内部创建逗号分隔列表的最优雅方式是什么?Rails使用逗号分隔数组项目,部分内部使用逗号
我刚刚发现,您可以使用partials遍历从另一个视图模板发送的集合。因此,在视图模板,我有:
<% 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的方式。
谢谢。
编辑
试图解释好一点,@ dvd.director返回像ActiveRelation对象,以便:
[#<Director id: 13, director: "Andrew Stanton">, #<Director id: 14, director: "Lee Unkrich">]
所以我不能只是做@dvd.director.join(', ')
是还有另外一种方法可以获得非
@dvd.director.each { |dir| dir.director }
因为我有同样的问题,我必须数它们或确保它不是最后一项,然后我在它们之间输入逗号,或者只提取导演名称并将它们放入字符串或类似内容中。如果我可以加入,那会很好。
太好了,这正是我需要的,谢谢! – kakubei 2012-03-19 13:02:37
如果我已经使用'map(&:director)',有没有办法在该文件中添加link_to? – kakubei 2012-03-19 14:10:20
尝试类似这样的: '= dvd.directors.map {| director | link_to director.name,dvd_director_path(dvd,director)}。join(“,”).html_safe' – 2014-03-03 02:30:48