首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails回形针与模型关联

Rails回形针与模型关联
EN

Stack Overflow用户
提问于 2010-07-16 05:34:35
回答 1查看 1.2K关注 0票数 1

我有一个页面,我可以在其中查看产品,用户可以直接从该页面添加和删除与该产品关联的多个图像。我在表单中使用回形针上传新文件。

因为可以为一个产品保存多个图像,所以我创建了一个属于该产品模型的图像模型。由于关联的原因,无法使用默认的回形针文件输入。我下面的解决方案是有效的,但我想知道在rails中是否有更好的方法来完成这一点,而不是我为使其工作而破解的所有html。

class Image < ActiveRecord::Base

代码语言:javascript
运行
复制
 `belongs_to :product`

class Product < ActiveRecord::Base

代码语言:javascript
运行
复制
 `has_many :images, :dependent => :destroy     accepts_nested_attributes_for :images, :allow_destroy => true`

show.html.erb

<% @product.images.build %>

<%= form_for(@product, :html => { :multipart => true }) do |f| %>

<input id="image" name="product[images_attributes][<%= @product.images.count %>][photo]" >size="30" type="file" onchange="this.form.submit();" />

<% end %>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-16 09:58:09

正如你很可能知道的,在你的控制器中,你可以用@product.images.build;构建一些空的文件输入,而在你的视图中,无论是编辑还是创建,你都可以这样做:

代码语言:javascript
运行
复制
<% f.fields_for :images do |img| %>

  <% if img.object.data_file_name %>
    <%= image_tag img.object.data.url(:thumb) %>
    <%= link_to 'Delete', img.object, {:method => :delete, :confirm => 'Are you sure?'} %>
  <% else %>
    <%= img.file_field :data %>
  <% end %>

<% end %>

这个特定的示例需要一个具有销毁操作的图像控制器,但即使图像是多态的,它也应该工作得相当好。

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

https://stackoverflow.com/questions/3260267

复制
相关文章

相似问题

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