首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >form_for @item.subitem.new

form_for @item.subitem.new
EN

Stack Overflow用户
提问于 2012-12-04 05:02:05
回答 1查看 212关注 0票数 0

我有这个上传图片的表格。

代码语言:javascript
复制
<%= 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连接,并为这两个模型创建一个表单。

我想我所要做的就是这样:

代码语言:javascript
复制
<%= 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?(不要认为这是个好主意,因为我需要确保他们不会尝试将图片上传到一些他们不拥有的项目中)

EN

回答 1

Stack Overflow用户

发布于 2012-12-04 07:55:49

为了防止任何人感到好奇-我通过将item_id传递给图片来解决它,如下所示:

代码语言:javascript
复制
<%= form_for Picture.new do |f| %>
    <%= f.label :file, "Upload Pictures: " %>
    <%= f.hidden_field :item_id, :value => @item.id %>
    <%= f.file_field :file, multiple: true, name: "picture[file]" %>
    <%= f.submit %>
<% end %>

并在图片模型中确保current_user拥有具有此id的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13691638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档