Rails Carrierwave Multiple Images with mount_uploaders
我正在使用Carrierwave的主分支,并使用mount_uploaders方法。我可以使用mount_uploader方法并上Leaflet个图像,但在使用多个图像时则不能。
我收到此消息,无法缩小问题的确切范围。
保存后,在"创建"和"更新"上均收到:
NoMethodError
1 | undefined method `map' for #<ActionDispatch::Http::UploadedFile:0x007fd281d6cdc8> |
参数请求:
1 2 | "award_images"=>#<ActionDispatch::Http::UploadedFile:0x007fd281d6cdc8 @tempfile=#<Tempfile:/var/folders/zx/47b5lzf16312zkh6949lm1_80000gq/T/RackMultipart20150210-22178-x4x4h9>, @original_filename="2009_01_addy_cfgc_videos.jpg", |
使用json列-award_images:json
查看:_form
1 2 3 4 5 6 7 8 9 10 11 12 13 | Featured Image <p><center>[wp_ad_camp_2]</center></p><p> <%= image_tag(@award.award_images_url, :class =>"image img-responsive featured") if @award.award_images? %> <%= f.file_field :award_images, multiple: true, name:"award[award_images]" %> <%= f.hidden_field :award_images_cache %> </p> <p> <label> <%= f.check_box :remove_award_images %> Remove Images </label> </p> |
型号:
1 2 3 | class Award < ActiveRecord::Base mount_uploaders :award_images, AwardImageUploader end |
控制器:我的强大参数
1 2 3 4 5 | private def award_params params.require(:award).permit(:title, :award_images, :etc) end |
其他详细信息:
rails4.1.8
Ruby 2.1.2
Postgres
将参数正式列入白名单略有不同。多次上传应列为
1 2 3 | def award_params params.require(:award).permit(:title, {award_images: []}, :etc) end |
源
在您的视图文件中尝试使用其他名称:
1 | <%= f.file_field :award_images, multiple: true, name:"award[award_images][]" %> |
方括号表示输入字段是一个数组(一个以上的图像)。