Paperclip未定义的方法' after_commit'

时间:2017-07-31 20:08:46

标签: ruby-on-rails ruby heroku amazon-s3 paperclip

我正在开发一个项目,该项目使用带有ruby(2.2.7)和rails(3.2.22)的回形针(4.3.7)将图像上传到S3。在本地,一切都像魅力,但当我把项目推到Heroku时,我收到了这个错误:

/app/vendor/bundle/ruby/2.2.0/gems/paperclip-4.3.7/lib/paperclip/has_attached_file.rb:94:in `add_active_record_callbacks': undefined method `after_commit' for JobApplication:Class (NoMethodError)

有人知道可能发生的事情吗?

3 个答案:

答案 0 :(得分:0)

你可以更新到更新版本的Rails吗? Paperclip's github repo说他们需要rails> = 4.2。我想你可能会在回形针中遇到一个错误。

如果您无法升级Rails,请考虑在JobApplication类中添加after_commit方法。您可能必须查看回形针源代码以找出他们试图添加的钩子并确定您是否可以在没有该功能的情况下生存,或者需要重新创建它。它可能是也可能不是至关重要的。

答案 1 :(得分:0)

在推送到Heroku之前你做过asset_precomplie吗?

rake assets:precompile RAILS_ENV=production
  

rake assets:precompile(RAILS_ENV =生产包exec rake   assets:precompile是精确的rake任务)

由于预编译仅在生产模式下完成,因此无需明确指定环境。

希望它能奏效:)

答案 2 :(得分:0)

好吧,我已经通过使用旧版Paperclip(2.7.0)并将回形针配置移动到模型本身而不是production.rb文件来解决了这个问题。无论如何,谢谢你的帮助!