[英]unpermitted parameters when saving paperclip image
我在参数方面遇到了一些麻烦,所以我想,我已经看到了Ruby on rails不允许的参数:image并且没有用
我在我的pictures_controller.rb中
def create
@picture = Picture.new(picture_params)
if @picture.save
#ok
else
#error
end
end
private
def picture_params
params.require(:picture).permit(:project_id, :picture )
end
在我的世界里
Parameters: {"utf8"=>"✓", "picture"=>{"project_id"=>"10", "picture"=>[#<ActionDispatch::Http::UploadedFile:0x007f9e9ccd1378 @tempfile=#<Tempfile:/tmp/RackMultipart20140604-18563-1ce54ta>, @original_filename="apple-touch-icon.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"picture[picture][]\"; filename=\"apple-touch-icon.png\"\r\nContent-Type: image/png\r\n">]}}
Unpermitted parameters: picture
参数project_id已保存,但回形针的字段(文件名,文件大小和文件类型)未保存。
IN模型
has_attached_file :picture, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :picture, :content_type => ["image/jpg", "image/jpeg", "image/gif", "image/png"]
而且Picture不是嵌套属性,project_id只是我在文本字段中获得的值,因此根本没有嵌套模型,它是一种简单的形式,具有两个字段project_id和一个名为picture的文件字段。
我解决了它,似乎在我的params中,带有图像数据的关键图片是一个数组
"picture"=>[#<ActionDispatch::Http::UploadedFile:0x007f9e9ccd1378 @tempfile=#<Tempfile:/tmp/RackMultipart20140604-18563-1ce54ta>, @original_filename="apple-touch-icon.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"picture[picture][]\"; filename=\"apple-touch-icon.png\"\r\nContent-Type: image/png\r\n">]}
所以我只是做一个.first来获取价值,我认为这不是最好的方法,但是我会找到一种更清洁的方法,至少现在我知道错误的出在哪里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.