产品有很多图像。我正在创建一个仅编辑产品图像的表单。
这是我到目前为止所做的:
<%= form_for(@product, :html => { :multipart => true }) do |f| %>
<%= f.fields_for :images do |i| %>
<% end %>
<% end %>
这部分是否正确?
我需要每个图像的单选按钮和文件字段,我该如何为每个图像执行此操作?
此表格仅用于编辑不创建图像的图像。
答案 0 :(得分:1)
假设你有一个任意数量的图像,你可能最好在你的应用程序中创建一个单独的模型(在这个例子中称之为Images)。然后,您可以定义产品和图像之间的多对一关系。 rails guide on active record associations有一些关于如何设置has_many
关系的好例子。
要回答您的问题,在您拥有模型的关系后,最好使用嵌套表单。有一个old railscast episode显示了如何执行此操作,如果您有一个railscast成员资格,则为newer updated one。
答案 1 :(得分:1)
我假设您的产品型号具有以下关联:
has_many :images
要解决您的问题,您需要查看嵌套模型的表单。 将以下行添加到Product模型中,它将允许您修改父模型表单中的嵌套模型。
accepts_nested_attributes_for :images
修改表单:
<%= f.fields_for :images do |i| %>
i.radio_button_tag :field_name
f.file_field :file
<% end %>
不要忘记将带有图像字段的images_attributes哈希添加到批量分配的允许属性列表中,您应该好好去!
This railscast可能非常方便。祝你好运!