rails carrierwave,上传多个文件

这是我的第一个问题stackoverflow 。

我试图一次修改上传多个文件。

new.html.erb

 
// <==== I add this

attraction_controller

 def new @attractions = Attraction.new @attractions.attraction_photos.build end def create @attractions = current_user.attractions.build(attraction_params) if @attractions.save flash[:success] = "success" redirect_to attractions_path else flash[:danger] = @attractions.errors.full_messages render action: :new end end def attraction_params params.require(:attraction).permit(:name, :longitude, :latitude, :address, :phone, :category_id, attraction_photos_attributes: [:photo => []]) end 

我得到了参数是

 { "name" => "name", "longitude" => "111", "latitude" => "222", "address" => "addresss", "phone" => "phone", "category_id" => "1", "attraction_photos_attributes" => { "0" => { "photo" => [#, @original_filename = "aaaaaaaaaaaa.png", @content_type = "image/png", @headers = "Content-Disposition: form-data; name=\"attraction[attraction_photos_attributes][0][photo][]\"; filename=\"aaaaaaaaaaaa.png\"\r\nContent-Type: image/png\r\n" > , #, @original_filename = "bbbbbbbbbbb.png", @content_type = "image/png", @headers = "Content-Disposition: form-data; name=\"attraction[attraction_photos_attributes][0][photo][]\"; filename=\"bbbbbbbbbbb.png\"\r\nContent-Type: image/png\r\n" > ] } } } 

我想我应该使用循环来创建照片。 但数据结构不是我想要的。 谢谢你的帮助。

Eidt

吸引力模型

 class Attraction < ActiveRecord::Base belongs_to :user belongs_to :category has_many :attraction_photos, dependent: :destroy accepts_nested_attributes_for :attraction_photos ... end 

吸引力照片模型

 class AttractionPhoto < ActiveRecord::Base belongs_to :attraction mount_uploader :photo, AttractionImageUploader end 

你有两个选择

第一个选项使用数据库中的json字段上传图片。 并非所有db都允许这样,例如某些mysql2 db不允许您在数据库中使用json类型字段。 使用这个也不是铁轨上的ruby最佳做法

rails carrierwave,一个用户有很多图像

另一个选项是来自此解决方案,您不会在数据库中使用JSON字段,而是创建一个单独的表

Rails 4使用carrierwave进行多个图像或文件上传

现在请告诉我为什么你不想使用这个解决方案,因为我实现了两个,我会尽力帮助你

同样从你的问题来看,你所遇到的问题并不清楚