Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:使用Dragonfly同时上传多个图像_Ruby On Rails_Ruby On Rails 4_Upload_Nested Forms_Dragonfly Gem - Fatal编程技术网

Ruby on rails Rails:使用Dragonfly同时上传多个图像

Ruby on rails Rails:使用Dragonfly同时上传多个图像,ruby-on-rails,ruby-on-rails-4,upload,nested-forms,dragonfly-gem,Ruby On Rails,Ruby On Rails 4,Upload,Nested Forms,Dragonfly Gem,我用蜻蜓上传图片到模型照片,这是关联到其他模型。例如: 型号:邮政 class Post < ActiveRecord::Base has_many :photos, dependent: :destroy accepts_nested_attributes_for :photos, allow_destroy: true, reject_if: lambda {|attributes| attributes['im

我用蜻蜓上传图片到模型照片,这是关联到其他模型。例如:

型号:邮政

class Post < ActiveRecord::Base
  has_many :photos, dependent: :destroy

  accepts_nested_attributes_for :photos, allow_destroy: true,
                                reject_if: lambda {|attributes| attributes['image'].blank?}
看法


对,名称:“照片[图像][]”%>

您需要定义参数并以这种方式获取这些参数

你的新方法应该包含

def new
 # Your new form object 
 @photo = @post.photos.build
end
在控制器方法中使用此

params[:photos]['avatar'].each do |a|
  @photo = @post.photos.create!(:image => a)
end
您的表单应该如下所示:

<%= form_for(@post, :html => { :multipart => true }) do |f| %>
  <%= f.fields_for :photos do |p| %>
    <div class="field">
      <%= p.label :image %><br>
      <%= p.file_field :image, :multiple => true, name: "photos[image][]" %>
    </div>
<% end %>
{:multipart=>true})do | f |%>

对,名称:“照片[图像][]”%>
@headers=“内容处理:表单数据;名称=\”照片[图像][]\“文件名=\”10395806\u 685294291596378\u 3110064580239039583\u n.jpg\“\r\n内容类型:image/jpeg\r\n>,\,照片数组看起来像是空的。我更新了上面的代码。您添加了新方法。查看我的编辑。并从中删除@post.photos.new。尚未工作。这个“化身”参数是什么?如果我删除@post.photos.new,我会为上传的每个文件获取一个输入文件,再加上一个用于上传新图像的输入文件。我只想输入上传一张新照片或表单上的照片,这是因为我添加了一个新参数,这是一种我发现不会出现很多输入文件的方式。你可以共享存储库url吗?我可以看看吗?
   @post = Post.new(seminovo_params)
    params[:photos]['image'].each do |a|
      @photo = @post.photos.create!(:image => a)
    end
     <%= f.fields_for :photos, @post.photos.new do |photo| %>
        <%= photo.file_field :image, :multiple => true, name: "photos[image][]"  %>
def new
 # Your new form object 
 @photo = @post.photos.build
end
params[:photos]['avatar'].each do |a|
  @photo = @post.photos.create!(:image => a)
end
<%= form_for(@post, :html => { :multipart => true }) do |f| %>
  <%= f.fields_for :photos do |p| %>
    <div class="field">
      <%= p.label :image %><br>
      <%= p.file_field :image, :multiple => true, name: "photos[image][]" %>
    </div>
<% end %>