【发布时间】:2015-05-01 14:37:48
【问题描述】:
我有一个场景,一张专辑有很多曲目,并且这些曲目可能有特色艺术家,也称为artists。关联设置得很好,但主要是我的视图代码受到严重冗长的影响:
<table>
<% @album.tracks.each do |track| %>
<td>
<%= raw !track.artists.empty? ? "#{track.name} (feat. #{track.artists.map {|artist| link_to artist.name, artist_path(artist)}.to_sentence({:two_words_connector => ' & ', :last_word_connector => ' & '})})" : track.name %>
</td>
<table>
上面的目的是显示曲目的名称,如果曲目有任何特色艺术家(在 to_sentence 帮助方法的帮助下),请将它们列出并链接到他们自己的 show 视图。呈现的示例如下所示:
Give It To Me (feat. Justin Timberlake & Nelly Furtado)
或者如果有两个以上的精选艺术家:
Good Friday (feat. Common, Pusha T, Kid Cudi, Big Sean & Charlie Wilson)
有没有什么方法可以在不写这么长的表达式的情况下完成以下操作?
【问题讨论】:
标签: ruby-on-rails ruby model-view-controller dictionary interpolation