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