我有这个表格用于上传图片。
<%= form_for Picture.new do |f| %>
<%= f.label :file, "Upload Pictures: " %>
<%= f.file_field :file, multiple: true, name: "picture[file]" %>
<%= f.submit %>
<% end %>
我现在试图在这个模型和另一个名为 Item 的模型(Item 有很多图片)之间建立一个 has_many 连接,并为这两个模型设置一个表单。
我想我所要做的就是这样的:
<%= form_for(@item) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :keywords %><br />
<%= f.text_field :keywords %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
# and here goes the same form, just @item.pictures.new instead of Picture.new
<%= form_for(@item.pictures.new) do |f| %>
<%= f.label :file, "Upload Pictures: " %>
<%= f.file_field :file, multiple: true, name: "picture[file]" %>
<%= f.submit %>
<% end %>
但是当我提交图像时使用此表单 - 它不会将 item_id 分配给图片。(我确实正确编写了 has_many 和 belongs_to )。
我需要手动传递 item_id 吗?(不要认为这是个好主意,因为我需要确保他们没有尝试将图片上传到他们不拥有的某些物品)