ruby-on-rails - load_missing_constant (NameError)
问题描述
系统详细信息:
-Linux
-Docker 版本 17.03.0-ce
-Ruby 版本 1.8.7
-Rails 版本 2.3.8。
在对 Ruby on Rails 应用程序进行 dockerizing 的过程中,我在运行脚本/服务器时遇到以下错误,即启动 rails 的内置 Web 服务器:
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:440:in `load_missing_constant': 未初始化的常量 Api::InjectTokenIntoCookies (NameError)
此特定文件 (InjectTokenIntoCookies) 存在于单独的插件文件夹中。我在解决这个问题方面得到的最远的结果是,这是一个缺少宝石的案例。但是,在 docker 容器中设置整个 rails 环境只会增加复杂性。
“RUN bundle install”包含在 Dockerfile 中,所以这应该不是问题。
完整的错误跟踪:
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:440:in `load_missing_constant': uninitialized constant Api::InjectTokenIntoCookies (NameError)
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:80:in `const_missing'
from /bab/apps/site/config/initializers/api_middleware.rb:1
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load_without_new_constant_marking'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:145:in `load'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:622:in `load_application_initializers'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:621:in `each'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:621:in `load_application_initializers'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:176:in `process'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run'
from /bab/apps/site/config/environment.rb:6
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `gem_original_require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require'
from /usr/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/commands/server.rb:84
from /bab/apps/site/script/server:3:in `gem_original_require'
from /bab/apps/site/script/server:3:in `require'
from /bab/apps/site/script/server:3
解决方案
推荐阅读
- django - 尽管我什么都没做,但 Postgres 有很多活动正在进行
- node.js - 通过更改从键访问值(onWrite)
- html - 模态不会垂直和水平渲染到屏幕中心
- google-app-maker - 将@expr 数据表导出到谷歌应用程序制造商的工作表?
- gatsby - 与创建节点和创建页面有关的 Gatsby 生命周期 API 问题
- sql - 是否有适用于多个列的 CASE 语句以将类似的输出值更改为另一个(但不同的)类似值?
- telegram-bot - 如何通过 api 检索频道中发布的最新电报机器人消息?
- reactjs - 使用 React、D3v5、openstreetmaps 将地图图块层叠在一起时遇到麻烦?
- javascript - 传入 JSON 正文
- active-directory - LDAP - 无法使用 spring java ldap api 启用用户