Как показать кнопку загрузки файла один раз во вложенной форме в rails 4?
У меня есть родительская (плейлист) -> дочерняя (треки) структура в моем приложении rails.
То, что я делаю в форме, показывает атрибуты от родителя, а затем у меня есть таблица для дочерних атрибутов.
<%= form_for(@playlist) do |f| %>
<% if @playlist.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@playlist.errors.count, "error") %> prohibited this playlist from being saved:</h2>
<ul>
<% @playlist.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label "Playlist Name: " %>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label " Image: " %>
<%= f.file_field :photo %>
</div>
<br>
<div class="field">
<h5> description: </h5>
<br>
<%= f.text_area :description, :size => "80x3"%>
</div>
<br>
<div>
<h5> Add some music: </h5>
</div>
<div class="field">
<%= f.fields_for :tracks, Track.new do |ff| %>
<%= ff.file_field :audio, :multiple => true %>
<% end %>
</div>
<% if !@playlist.tracks.blank? %>
<table id="tracks" class="display">
<thead>
<tr>
<th>Delete</th>
<th>Track</th>
<th>Album</th>
<th>Artist</th>
<th>Label</th>
</tr>
</thead>
<tbody>
<%= f.fields_for :tracks do |ff| %>
<%= render "track_fields", :f => ff %>
<% end %>
</tbody>
</table>
<% end %>
<div class="actions">
<%= f.submit "Save" %>
</div>
<% end %>
Я использую скрепку для загрузки файлов. Я загружаю изображения по модели плейлиста и mp3-файлы по модели треков.
Код, о котором идет речь, следующий:
<div class="field">
<%= f.fields_for :tracks, Track.new do |ff| %>
<%= ff.file_field :audio, :multiple => true %>
<% end %>
</div>
Я чувствую, что это взломать. Почему мне нужно добавить новую дорожку, чтобы один раз показать file_field (выбрать кнопку файла)? Внизу формы вы заметите, что мне нужно позвонить
<%= f.fields_for :tracks do |ff| %>
еще раз, потому что я хочу перебрать все дорожки для плейлиста и показать их в таблице.
Не уверен, что этот вопрос имеет смысл, но как мне показать файл file_field один раз (я чувствую, что Track.new - это хак, и я думаю, что он запутался в сохранении модели)?
РЕДАКТИРОВАТЬ: вот скриншот того, что происходит, если у меня нет Track.new: