Rails 4中的回形针 – 强参数禁止属性错误

在Rails 4中存在Paperclip上传问题 – ForbiddenAttributesError(强参数验证)失败.有最新的纸夹宝石和最新的rails 4宝石.

我有一个模型“图像”与模型中附带的文件上传”:

has_attached_file :upload,:styles => { :review => ["1000x1200>",:png],:thumb => ["100x100>",:png]},:default_url => "/images/:style/missing.png"

图像模型是用脚手架创建的,我添加了纸夹移动.表单部分已更新以使用

f.file_field :upload

该表单生成似乎是一组典型的回形针参数,图像参数包含上传.我也在图像模型中传递一个transaction_id,所以应该被允许.但是就是这样 – 图像和事务ID.

我期望能够在我的控制器中写下列内容将其帖子列入白名单,但失败:

def image_params
  params.require(:image).permit(:transaction_id,:upload)
end

所以我更明确 – 但是失败了:

def image_params
  params.require(:image).permit(:transaction_id,:upload => [:tempfile,:original_filename,:content_type,:headers])
end

我有点沮丧,Rails 4没有显示ForbiddenAttributesError在开发环境中失败 – 它应该显示错误,但它不会 – 将是一个很好的补丁来缓解开发.或者也许其他人正在收到我失踪的东西!非常感谢您的帮助.

解决方法

我明白现在在这里发生了什么 – 并将留下这个希望,帮助别人.我正在从rails 3项目移植代码,错过了创建图像的行:
@image = current_user.images.new(params[:image])

在轨道4中,这是不正确的(我知道).我更新到

@image = current_user.images.new(image_params)

解决了我的问题.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...