错误:推送到Heroku时未初始化常量Sprockets:Helpers



我刚刚安装了carrierwave,并设置了rails 4应用程序,通过fog在Amazon s3上存储图像。该应用程序正在使用Carrierwave运行并部署到Heroku(但图像被dyno清除)。在一些最初的问题之后,我让它在本地主机上工作(据我所知)。

现在我很难将新版本推送到Heroku。我已经重置了数据库。预先编译了资产,现在正在尝试迁移数据库。下面是我得到的错误。

Running `rake db:migrate` attached to terminal... up, run.6517
rake aborted!
uninitialized constant Sprockets::Helpers
/app/app/uploaders/image_uploader.rb:12:in `<class:ImageUploader>'
/app/app/uploaders/image_uploader.rb:4:in `<top (required)>'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:465:in `block (2 levels) in eager_load!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `each'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:464:in `block in eager_load!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:462:in `each'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:462:in `eager_load!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/engine.rb:347:in `eager_load!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:56:in `each'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `instance_exec'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:30:in `run'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:55:in `block in run_initializers'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/initializable.rb:54:in `run_initializers'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:215:in `initialize!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/railtie/configurable.rb:30:in `method_missing'
/app/config/environment.rb:5:in `<top (required)>'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:189:in `require_environment!'
/app/vendor/bundle/ruby/2.0.0/gems/railties-4.0.0/lib/rails/application.rb:249:in `block in run_tasks_blocks'
Tasks: TOP => db:migrate => environment

我尝试过在Uploader文件中包含和不包含Sprockets,但无论哪种方式都会得到相同的错误。我知道Sprockets不再包含在Rails4的master中。我现在已经安装了链轮轨道和链轮辅助宝石。我也试着在文件的顶部要求它们(我不完全理解,但遵循这个建议https://github.com/petebrowne/sprockets-helpers)。什么都没用。关于如何解决这个问题的任何建议。如何初始化Sprockets:Helpers。谢谢

我犯了一个非常愚蠢的错误。我已经更正了我的应用程序中的文件,并将更改提交给master,但我一直在运行heroku run rake db:migrate命令,并得到了同样的错误,所以我认为我还没有解决它。我忘了把新版本推给heroku了!因此,仍然会出现同样的错误。

此外,如果其他人也有类似的问题。确保你已经修复了这个问题:

https://github.com/carrierwaveuploader/carrierwave/issues/1020

最新更新