写真をアップロードするためのこのフォームがあります。
<%= 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接続を作成し、これら2つのモデルに対して1つのフォームを作成しようとしています。
私がしなければならないのはこのようなものだけだと思いました:
<%= 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を手動で渡す必要がありますか?(それが良い考えの原因だとは思わないでください、そして私は彼らが所有していないいくつかのアイテムに写真をアップロードしようとしていないことを確認する必要があります)