【问题标题】:Error: uninitialized constant Sprockets::Helpers when pushing to Heroku错误:推送到 Heroku 时未初始化的常量 Sprockets::Helpers
【发布时间】:2013-12-05 05:49:30
【问题描述】:

我刚刚安装了carrierwave,并将我的rails 4 应用程序设置为通过雾存储在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 文件中包含和不包含 Sprocket,但无论哪种方式都出现相同的错误。我知道 Sprockets 不再包含在 Rails 4 的 master 中。我现在已经安装了 sprockets-rails 和 sprockets-helper gems。我还尝试在文件顶部要求它们(我不完全理解这一点,但遵循这个建议https://github.com/petebrowne/sprockets-helpers)。没有任何效果。关于如何解决这个问题的任何建议。如何初始化 Sprockets::Helpers。谢谢。

【问题讨论】:

    标签: ruby-on-rails heroku amazon-web-services carrierwave sprockets


    【解决方案1】:

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

    另外,如果其他人有类似的问题。确保您已解决此问题:

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

    【讨论】:

    • 只是澄清一下 - 您在问题 #1020 中运行 rake 任务来解决问题? - 你还需要在你的代码中“要求”吗?干杯
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2016-10-22
    相关资源
    最近更新 更多