我将Rails 2.3应用程序更新为3.2,这似乎是一个非常简单的过程,但在设置Figaro gem时我遇到了这个错误:
C:\Sites\JustManage>rails generate figaro:install
C:/Sites/JustManage/config/environment.rb:5:in `<top (required)>': uninitialized
constant Projectmanagement (NameError)
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1
/lib/rails/application.rb:103:in `require_environment!'
from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-3.2.1
/lib/rails/commands.rb:25:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
以下是 environment.rb 的内容:
# Load the rails application
require File.expand_path('../application', __FILE__)
# Initialize the rails application
Projectmanagement::Application.initialize!
这是我的 application.rb 文件:
require File.expand_path('../application', __FILE__)
require 'rails/all'
if defined?(Bundler)
Bundler.require(*Rails.groups(:assets => %w(development test)))
end
module Railsapp
class Application < Rails::Application
config.encoding = "utf-8"
config.filter_parameters += [
:password,
:password_clear,
:password_verify
]
config.assets.enabled = true
config.assets.version = '1.0'
end
end
我以前从未遇到过这个错误,也不知道为什么会这样。
答案 0 :(得分:4)
您的应用程序的名称似乎在需要显示的不同位置不同。请检查以下文件,看看它们是否包含Projectmanagement::Application
或Railsapp::Application
:
然后选择一个名称(Projectmanagement
或Railsapp
)并更改上述文件中的所有名称,使其匹配。这应该解决你正在经历的未初始化的常数错误。
答案 1 :(得分:1)
我无法确定它们不是复制/粘贴错误,但您的application.rb
似乎不正确。我看到的问题:
application.rb
第二次需要boot.rb
。environment.rb
文件(Railsapp
与Projectmanagement
)中的内容不一致。第二个问题实际上是导致你看到的错误 - 在调用方法之前你还没有定义Projectmanagement
常量。