Я использую камень nested_form, но столкнулся с одним вариантом использования, который доставляет мне некоторые проблемы. У меня есть одна конкретная вложенная форма, где частичное для существующих вложенных объектов отличается от того, которое необходимо при добавлении нового объекта. (Конкретный вариант использования - изображения - существующие загруженные изображения отображают тег изображения, новые объекты изображений должны отображать поле file_ для загрузки.)
Одна вещь, которую я пробовал, это проверить в частичном для f.object.nil? определить, что нужно визуализировать, но как новые, так и существующие объекты по-прежнему дают частичный код существующего объекта. Я предполагаю, что это как-то связано с тем, как nested_form BuilderMixin вызывает fields_for?
Есть ли простой способ сделать это, что мне не хватает? Или мне нужно взглянуть на изменение кода nested_form link_to_add, чтобы приспособиться к этому?
Для справки, здесь была моя попытка использовать один частичный:
<tr>
<% if !f.object.nil? %>
<td>
<a href="/customer_images/<%= f.object.id %>" target="_new">
<%= image_tag f.object.picture.url -%>
</a>
</td>
<td>
Description: <%= f.object.image_description %><br/>
Date Uploaded: <%= (f.object.nil? || f.object.created_at.nil?) ? "Not yet uploaded." : f.object.created_at.strftime("%A %h %d, %Y %I:%M %p") %>
<br>
<%= f.link_to_remove "Remove this image" %>
</td>
<% else %>
<td> </td>
<td>
<%= label :image, :file, "Select File:" %><%= f.file_field :picture %><br />
Description: <%= f.text_field :image_description %><br />
</td>
<% end %>
</tr>