我有一个名为'rack'的数据模型。当我在Rails项目中生成具有此名称的模型时,启动服务器时会出错。
load_missing_constant: uninitialized constant ActiveRecord (NameError)
我没有使用Rack Middleware,我没有在Ruby或Rails中看到'rack'作为保留字。这里有什么我想念的吗?
答案 0 :(得分:3)
好吧,如果您使用的是最新版本的Rails,那么实际上 使用的是Rack中间件,因为这就是目前实现的几个Rails组件的实际情况(实际上,Rails是一个整体)现在是一个Rack应用程序)。因此,已经存在名为Rack的常量,因此当您尝试创建名为Rack的ActiveRecord模型时,会发生冲突。我不确定为什么你会得到那个特定的错误 - 当我在一个玩具项目上尝试它时,我在尝试运行迁移时遇到了这个错误:
jhyland@john-hylands-macbook: ~/tmp/foo $ rake db:migrate
(in /Users/jhyland/tmp/foo)
rake aborted!
Rack is not a module
无论如何,我强烈怀疑这是你问题的根本原因。是否可以更改模型的名称?
答案 1 :(得分:0)
您是否更改了config/environment.rb
文件以删除ActiveRecord?
Rails::Initializer.run do |config|
#...
# Skip frameworks you're not going to use. To use Rails without a database,
# you must remove the Active Record framework.
config.frameworks -= [ :active_record ]
#...
end
答案 2 :(得分:0)
您正在使用哪种版本的导轨?
截至2.3, rails runs on Rack