2011-10-24 53 views
0

我有一個新的Rails應用程序需要從名爲「Doo_dad」的舊式表中訪問數據,其中自動增量主鍵稱爲「id」,字符串字段稱爲「name」 。新Rails應用程序從遺留表中繪製一些數據

所以我創建了一個名爲應用程序/模型/ doodad.rb一個新的模型文件,該文件是這樣的:

class Doodad < ActiveRecord::Base 
    set_table_name "Doo_dad" 
end 

當我裝Rails的控制檯,我能達到我的Rails生成的模型,但我看不見類

> rails console 
irb> Doodad.class 
NameError: uninitialized constant Doodad 
(from (irb):1: in `evaluate` 

類裝飾物在應用程序/模型/ doodad.rb沒有得到加載。此代碼是很好的,因爲當我做了以下內容:

> rails console 
irb> class Doodad < ActiveRecord::Base 
irb> set_table_name "Doo_dad" 
irb> end 
irb> Doodad.class 
=> OK 
irb> d=Doodad.new 
irb> d.name="Uno" 
irb> d.save 
=> OK no errors 

即當我猴子打補丁的應用程序/模型/ doodad.rb的內容,一切都很好,和裝飾物被稱爲「烏諾」被保存到數據庫中。

我怎樣才能讓Rails加載我的模型類掛鉤到遺留表?

+0

什麼錯誤?像「發生了什麼」的東西通常是一種有用的診斷工具。 –

+0

該表是否顯示在'schema.rb'中? –

+0

NameError:未初始化的常量Doodad –

回答

0

D'oh!我曾在app/models/doodads.rb上課。一旦我將它重命名爲app/models/doodad.rb,一切都很好。

我想,每個文件與Rails模型文件命名約定(文件名= classname.underscore +「。rb」)的一個模型類的約定是一個絕對的「必須」,以使其工作。

相關問題