我正在使用 Carrierwave 的主分支并使用mount_uploaders方法。我可以使用 mount_uploader 方法上传单个图像,而不是在使用多个图像时。
我收到此消息,无法缩小问题的确切范围。
保存后,在创建和更新上我收到:
NoMethodError
undefined method `map' for #<ActionDispatch::Http::UploadedFile:0x007fd281d6cdc8>
参数请求:
"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
<h2>Featured Image</h2>
<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>
型号:
class Award < ActiveRecord::Base
mount_uploaders :award_images, AwardImageUploader
end
控制器:我强大的参数
private
def award_params
params.require(:award).permit(:title, :award_images, :etc)
end
额外详情:
Rails 4.1.8
Ruby 2.1.2
的Postgres
答案 0 :(得分:1)
params官方白名单略有不同。多次上传应列入{variables: []}
列入白名单。请尝试以下方法:
def award_params
params.require(:award).permit(:title, {award_images: []}, :etc)
end
答案 1 :(得分:0)
在您的视图文件中尝试使用其他名称:
<%= f.file_field :award_images, multiple: true, name: "award[award_images][]" %>
括号表示输入字段是一个数组(多个图像)。