ruby-on-rails - 具有多个图像的嵌套回形针表单

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

我在 Banana 模型和 Image 模型之间存在一对多关联。

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

我想要一个嵌套的表单来创建香蕉和图像。关键是我不知道要构建多少个图像(注意 multiple 属性)。下面表格中注释掉的部分将创建适当数量的图像,但不会完成相关的用户引用。
有没有办法像我尝试过的那样使用 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_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

最佳答案

Multiple upload with Paperclip in ror

检查这个答案!

您可以使用 paperclip上传图片和nested_form用于多次上传。上面的问题将帮助您将所有这些联系起来。如果你仍然做不到,请写信给我。我只是解决这个问题。

关于ruby-on-rails - 具有多个图像的嵌套回形针表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18535748/

相关文章:

ruby-on-rails - Mongoid "reverse polymorphism"?如何在一个与类名不匹配的字段下嵌入多个类类型

html - 使用 actionmailer 时如何根据设备类型或屏幕大小调整图像大小?

ruby-on-rails - 删除图标不做确认对话框

mysql - Rails Paperclip 将图像从 URL 保存到数据库中

ruby-on-rails - Rails 3 - 带版本控制的图像回形针 - 可能吗?

ruby-on-rails - 获取每个月最后一个星期五的日期

ruby-on-rails - 回形针和 Amazon S3 问题

ruby-on-rails - Ruby:使用嵌套表单时如何在 Controller 中赋值?

ruby-on-rails - Ruby/Rails 中不需要的(元?)数据

ruby-on-rails - nested_form gem : wrong number of arguments (4 for 3)错误