0
让自己感到困惑,我认为是一个双重循环,不知道如何解决它。任何人都可以救我完全疯了吗?奇怪的循环行为 - 这里发生了什么?
此作品在我的节目的看法:
<% @releases_tracks_temp.each do |releases_track| %>
<tr>
<td><%= releases_track.track.id %>/<%= releases_track.position %></td>
<td><%= releases_track.track.name %>
<%= releases_track.track.artists.map { |a| a.name}.join (", ") %></td>
<td><%= releases_track.track.isrc %></td>
<td><%#= link_to image_tag("icons/delete.png"), releases_track, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
我试图渲染与自定义操作和查看多个磁道的形式使用:
<%= form_for @release do |f| %>
<%= f.fields_for :tracks do |builder| %>
<%= render 'track_fields', :f => builder %>
<% end %>
<%= link_to_add_fields "Add track", f, :tracks %>
然后域就是:
<% @releases_tracks_temp.each do |releases_track| %>
<%= f.text_field :name, :class => "text" %>
<%= f.text_field :artist_tokens, "data-pre" => releases_track.track.artists.map(&:attributes).to_json, :class => "track_artist_tokens" %>
<%= f.text_field :version, :class => "text" %>
<%= f.text_field :isrc, :class => "text" %>
<%= f.select(:asset_tier, options_for_select([['Front', 'Front'], ['Mid', 'Mid'], ['Back', 'Back']]), {}, :class => "tier-select") %>
<%= f.text_field :preview_start, :class => "text small" %>
<%= f.check_box :parental_advisory %>
<%= f.check_box :available_separately, {:checked => true} %>
<%= f.check_box :_destroy %>
<% end %>
我最终得到它循环,但很多轨道有这个数字,例如5 tra cks显示5次!所以有25个结果。我想我看到一个双循环,但我不知道如何解决这一问题,仍然有通过访问(多个)艺术家的每个轨道:
releases_track.track.artists.map(&:attributes)
任何想法?
噢,@releases_tracks_temp在我的释放控制器定义为:
@releases_tracks_temp = @release.releases_tracks.find(:all, :order => "position")
曲目被接受为嵌套下释放。
在此先感谢!
啊,我看你在这里得到,但我不什么我不认为就是这样。当我在循环中购买时,当它开始表现糟糕时,就会吸引曲目艺术家:@ releases_tracks_temp.each do | releases_track | 。我确实尝试了上面的建议,但它正在寻找'builder' – Raoot
这应该是f而不是builder。我会尽快测试并看看。 –
@ D3mon - 非常感谢您的帮助,但这只会产生一种形式/曲目。我很确定问题出现在@ releases_tracks_temp.each do | releases_track |因为当我删除它时,我会得到正确数量的曲目减去每个曲目的艺术家。 – Raoot