Ruby on rails Carrierwave-一次上载多个图像,为每个图像创建模型对象

Ruby on rails Carrierwave-一次上载多个图像,为每个图像创建模型对象,ruby-on-rails,carrierwave,Ruby On Rails,Carrierwave,我将Rails 4与carrierwave gem一起使用。我有一个型号user\u item\u images user\u item有许多user\u item\u图像 schema.rb create_table "user_item_images", force: :cascade do |t| t.integer "user_item_id" t.datetime "created_at" t.datetime "updated_at" t.str

我将Rails 4与carrierwave gem一起使用。我有一个型号
user\u item\u images

user\u item
有许多
user\u item\u图像

schema.rb

  create_table "user_item_images", force: :cascade do |t|
    t.integer  "user_item_id"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string   "picture"
  end
我需要一个表单,将接受多张图片,并为每张图片创建自己的模型对象

表格

<%= form_for :user_item_image, url: user_item_user_item_images_path(@user_item) do |f| %>
    <%= f.file_field :picture, multiple: true %>
    <%= f.submit %>
我在控制器的创建操作中引发了一个错误,以检查
user\u item\u image\u params
的值,我只得到
{}

如何一次提交多张图片并为每张图片创建单独的模型对象

更新

根据以下答案,我将参数更改为:

  def user_item_image_params
    params.require(:user_item_image).permit({picture: []})
  end
但当我提交时,什么都没有发生。我想我需要重写我的创作动作。基本上如果我有

>>  user_item_image_params
=> {"picture"=>[#<ActionDispatch::Http::UploadedFile:0x007f67d9b77d28 @tempfile=#<Tempfile:/tmp/RackMultipart20160317-588761-mjk73n.JPG>, @original_filename="IMG_0313.JPG", @content_type="image/jpeg",   @headers="Content-Disposition: form-data; name=\"user_item_image[picture][]\"; filename=\"IMG_0313.JPG\"\r\nContent-Type: image/jpeg\r\n">, #<ActionDispatch::Http::UploadedFile:0x007f67d9b77d00 @tempfile=#<Tempfile:/tmp/RackMultipart20160317-588761-edqw7.JPG>, @original_filename="IMG_0314.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user_item_image[picture][]\"; filename=\"IMG_0314.JPG\"\r\nContent-Type: image/jpeg\r\n">, #<ActionDispatch::Http::UploadedFile:0x007f67d9b77cd8 @tempfile=#<Tempfile:/tmp/RackMultipart20160317-588761-buatxk.JPG>, @original_filename="IMG_0315.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user_item_image[picture][]\"; filename=\"IMG_0315.JPG\"\r\nContent-Type: image/jpeg\r\n">]}
>用户项目图像参数
=>{“图片”=>[#,#,#]}

如何从每张图片中创建模型对象,在本例中为3。

图像需要作为散列和数组传入

def user_item_image_params
  params.require(:user_item_image).permit({picture: []})
end
此外,您的型号应该使用
mount\u uploader
而不是
mount\u uploader

class UserItemImages
  mount_uploaders   :picture
end

伟大的这解决了我获取空哈希的问题,但现在当我提交时,似乎什么都没有发生。我认为我的行为是错误的。我如何重写它,以便为上传的每一张图片创建一个模型对象?你使用了mount_uploader而不是mount_uploader吗?我在carrierwave网站上看到,上面说,但我认为这是指将所有图像存储在模型的一列中。我不想那样做。我想根据上面的模式为每张图片创建一个单独的模型对象。如果我的
用户\u item\u image\u params
有一个
:picture
键,带有一个值,所有图片的所有信息,我需要一种方法来提取这些信息并为每张图片创建一个对象。
class UserItemImages
  mount_uploaders   :picture
end