我正在使用nested_form gem但是遇到了一个给我带来麻烦的用例。我有一个特定的嵌套表单,其中现有嵌套对象的部分不同于添加新对象时所需的部分。 (特定用例是图像 - 现有上传图像显示图像标记,新图像对象需要呈现file_field以进行上传。)
我尝试过的一件事是在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>