2009-10-01 101 views
0

我有一個名稱爲「機架」的數據模型。當我在Rails項目中使用此名稱生成模型時,啓動服務器時出現錯誤。導軌模型失敗

load_missing_constant: uninitialized constant ActiveRecord (NameError) 

我沒有使用Rack Middleware,也沒有在Ruby或Rails中看到'rack'作爲保留字。有什麼我在這裏失蹤?

回答

3

好吧,如果你使用的是最新的Rails的版本,實際上就是使用Rack中間件,因爲這是如何將幾個導軌組件實現了這些天(Rails的作爲實際上,整個實際上是一個Rack應用程序)。因此,已經有一個名爲Rack的常量,因此當您嘗試創建一個名爲Rack的ActiveRecord模型時,就會發生碰撞。我不知道爲什麼你的特定錯誤,雖然 - 當我試圖在一個玩具項目,我得到這個錯誤試圖運行遷移:

[email protected]: ~/tmp/foo $ rake db:migrate 
(in /Users/jhyland/tmp/foo) 
rake aborted! 
Rack is not a module 

無論如何,我強烈懷疑,這是根本你的問題的原因。是否可以更改模型的名稱?

+0

名稱衝突導致各種奇怪的錯誤:http://stackoverflow.com/questions/960781/rails-cannot-find-model-with-same-name-as-ruby-class – 2009-10-01 20:46:47

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