Я использую carrierwave для загрузки фотографий в модель мира. Я не могу понять, как правильно загрузить форму:
class World
include Mongoid::Document
embeds_many :photos
accepts_nested_attributes_for :photos
end
class Photo
include Mongoid::Document
mount_uploader :image, WorldPhotoUploader
embedded_in :world
end
# show.haml
= form_for world, :html => {:multipart => true} do |f|
= f.fields_for world.photos.build do |photo|
= photo.file_field :image
Это дает мне эту форму ввода:
<input id="world_photo_image" name="world[photo][image]" type="file">
Что не работает, я получаю
Cannot serialize an object of class ActionDispatch::Http::UploadedFile into BSON.
{"utf8"=>"✓",
"_method"=>"put",
"authenticity_token"=>"e2PzZlSY0NwiCqDWn7ZMNwqnypP+GC23PcMuy+uGyF0=",
"world"=>{"photo"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x00000103182ac8 @original_filename="Black Box fish.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"world[photo][image]\"; filename=\"Black Box fish.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:/var/folders/IY/IY7PGAf2F9OD6CIKr1RQo++++TI/-Tmp-/RackMultipart20110917-57084-zwoyfy>>}},
"commit"=>"Upload",
"id"=>"pluto"}
Кажется, что работает ввод:
<input id="world_photo_image" name="world[photos][][image]" type="file">
Но я не уверен, как создать форму, чтобы получить это