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

标签 paperclip ruby-on-rails-4 strong-parameters paperclip-validation

Rails 4 中的回形针上传出现问题 - 因 ForbiddenAttributesError(强参数验证)而失败。拥有最新的回形针 gem 和最新的轨道 4 gem 。

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

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

图像模型是用脚手架创建的,我添加了回形针迁移。表单部分已更新为使用

f.file_field :upload

该表单生成一组典型的回形针参数,其中图像参数包含上传内容。我还在图像模型中传递了 transaction_id,因此应该允许它。但就是这样 - 图像和交易 ID。

我希望能够在我的 Controller 中编写以下内容以将我的帖子列入白名单 - 但它失败了:

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])

在 Rails 4 中这是不正确的(我相信)。我更新到

@image = current_user.images.new(image_params)

这解决了我的问题。

关于Rails 4 中的回形针 - 强参数禁止属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737709/

相关文章:

ruby-on-rails - 带有负载平衡机的回形针 + rails

ruby-on-rails - Rails 4-belong_to 嵌套对象字段未保存

css - 格式化只影响显示 block 的右侧

ruby-on-rails - 如何让 ActiveAdmin 使用强参数?

ruby - 强参数 : How to process nested json code?

ruby-on-rails - 如何在 Rails 3 中使用 Cucumber/Capybara 在页面上找到图像

ruby-on-rails - NoMethodError(私有(private)方法 `gets' 调用 #<Paperclip::UploadedFileAdapter:0xdbc7624>)

paperclip - Rails with Paperclip 忽略空附件

sql - 使用 select 从不同的表中获取列值

ruby-on-rails - 命名空间子域 Controller 和自定义布局