我有一个Rails项目,其中包含一些引擎,我们正在使用这些引擎来模块化工作。其中一个引擎具有作为依赖的基础rails gem
这是对引擎gemspec:中gem的调用
s.add_dependency 'foundation-rails'
引擎的Gemfile如下所示:
source "https://rubygems.org"
gemspec
我的主要ruby应用程序Gemfile调用的引擎类似于
gem 'my_engine_name', path: 'engines/my_engine_name'
当在本地运行服务器时,一切正常。我有几个视图正在正确加载所有基础的资产和样式。
然而,heroku上部署的应用程序抛出了这个错误
Rails 4.1.6 application starting in production on http://0.0.0.0:55282
2014-10-16T13:06:46.175620+00:00 app[web.1]: => Run `rails server -h` for more startup
options
2014-10-16T13:06:46.175622+00:00 app[web.1]: => Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
2014-10-16T13:06:46.175624+00:00 app[web.1]: => Ctrl-C to shutdown server
2014-10-16T13:06:46.175626+00:00 app[web.1]: Exiting
2014-10-16T13:06:46.146888+00:00 app[web.1]: /app/vendor/bundle/ruby/2.1.0/gems/foundation-rails-5.0.3.1/app/controllers/foundation/rails/styleguide_controller.rb:3:in `<module:Rails>': uninitialized constant Foundation::Rails::ApplicationController (NameError)
2014-10-16T13:06:46.146909+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.1.0/gems/foundation-rails-5.0.3.1/app/controllers/foundation/rails/styleguide_controller.rb:2:in `<module:Foundation>'
2014-10-16T13:06:46.146911+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.1.0/gems/foundation-rails-5.0.3.1/app/controllers/foundation/rails/styleguide_controller.rb:1:in `<top (required)>'
2014-10-16T13:06:46.146913+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/engine.rb:468:in `block (2 levels) in eager_load!'
2014-10-16T13:06:46.146915+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/engine.rb:467:in `each'
2014-10-16T13:06:46.146920+00:00 app[web.1]: from /app/vendor/bundle/ruby/2.1.0/gems/railties-4.1.6/lib/rails/engine.rb:467:in `block in eager_load!'
所以我的问题是,有人遇到过类似的问题吗?我找不到任何人有同样的错误,我看到有人在部署或未加载资产时在heroku上构建应用程序时遇到问题,但我的应用程序在部署时构建得很好。当我试图在web浏览器上加载页面时,会出现此错误。
在这里你可以找到一个PR来解决你的问题,希望它能有所帮助。让我们知道进展如何。https://github.com/zurb/foundation-rails/pull/99