带有多个图像的嵌套回形针形式

时间:2013-08-30 14:47:01

标签: ruby-on-rails paperclip nested-forms nested-attributes

我在香蕉模型和图像模型之间有一对多关联。

此外,每个香蕉和图像属于一个用户(通过单独的关联,因为图像及其香蕉可能有不同的用户)。

我想要一个嵌套的表单来创建香蕉和图像。踢球者是我不知道要构建多少个图像(注意多个属性)。下面表单中注释掉的位将创建适当数量的图像,但不会完成关联的用户参考。 有没有办法用fields_for完成这个(所以关联完成了),就像我试过的那样?

香蕉模型

class Banana < ActiveRecord::Base
  belongs_to :user
  validates_presence_of :user

  has_many :images, dependent: :destroy
  accepts_nested_attributes_for :images
  validates_associated :images
end

图片模型

class Image < ActiveRecord::Base
  belongs_to :user
  validates_presence_of :user

  belongs_to :banana
  validates_presence_of :banana

  has_attached_file :img
end

FORM

<%= form_for @banana, :validate => true, :html => { :multipart => true } do |f| %>
<!--    <input type="file" name="banana[images_attributes][][img]" multiple />-->
    <%= f.fields_for 'images_attributes[]', @banana.images do |builder| %>
        <%= builder.file_field :img, multiple: true %>
    <% end %>
<% end %>

CONTROLLER

class BananasController < ApplicationController
  def create
    @banana = current_user.bananas.build(banana_params)
    render :new unless @banana.save
  end

  def new
    @banana = Banana.new
  end

  private

  def banana_params
    params.required(:banana).permit(images_attributes: [:img])
  end
end

1 个答案:

答案 0 :(得分:2)

Multiple upload with Paperclip in ror

检查这个答案!

您可以使用paperclip上传照片,nested_form进行多次上传。上面的问题将帮助您连接所有这些。如果你仍然不能这样做,请写信给我。我只是解决了这个问题。