gpt4 book ai didi

ruby-on-rails - 在 Rails 显示 View 中映射和链接模型实例

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:18 25 4
gpt4 key购买 nike

我有一个场景,一张专辑有很多轨道,并且这些轨道可能有特色艺术家,也称为艺术家。关联设置得很好,但主要是我的 View 代码非常冗长:

<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 辅助方法),列出他们并链接到他们自己的显示 View 。呈现的示例看起来像这样:

Give It To Me (feat. Justin Timberlake & Nelly Furtado)

或者如果有两位以上的特色艺术家:

Good Friday (feat. Common, Pusha T, Kid Cudi, Big Sean & Charlie Wilson)

有什么方法可以在不编写这么长的表达式的情况下完成以下操作?

最佳答案

我会把所有的逻辑都移到一个助手中,例如创建一个方法application_helper.rb:

def display_track(track)
if track.artists.empty?
track.name
else
links = track.artists.map {|artist| link_to artist.name, artist_path(artist) }
sentence = links.to_sentence(two_words_connector: ' & ', last_word_connector: ' & ')

"#{track.name} (feat. #{sentence})"
end
end

然后你的 View 简化为:

<table>
<% @album.tracks.each do |track| %>
<td>
<%= raw display_track(track) %>
</td>
<% end %>
<table>

关于ruby-on-rails - 在 Rails 显示 View 中映射和链接模型实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29988930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com