2012-02-24 30 views
1

我完全不熟悉Rails,但我已經完成了相當多的搜索,沒有成功解決這個問題。這看起來很簡單。如何在Rails 3中使用現有的Postgres表格

我正在使用Netbeans,如果這有所作爲。

我有一個名爲診斷 其內部的Postgres數據庫是一個表叫diagnostics_data。它充滿了數據。相當多,它是由另一個應用程序生成的,每天更新。有幾百列將會不時變化。我的Rails應用程序將簡單地獲取這些數據,並將其繪製在動態Web環境中。我在Rails中製作的示例數據庫中繪製了繪圖程序,但我不知道如何讓Rails使用現有的表格。

我創建了一個新的應用程序,以及使用更新的,看起來像schema.rb:

ActiveRecord::Schema.define(:version => 20120224014811) do 
create_table "diagnostics_data", :force => true do |t| 
t.string "orbit_number",         :limit => nil 
t.string "netcdf_location",        :limit => 300 

這似乎表明,我已經成功連接到正確的數據庫。我甚至爲Diagnostics_Data生成了一個模型和遷移,但是...

>>ActiveRecord::Base.connection.tables 
>> [] 

什麼也沒有。 我有一個生成的模型

class DiagnosticsData < ActiveRecord::Base 
end 

但我無法連接到實際的表

>>d=DiagnosticsData.first 
>> ActiveRecord::StatementInvalid: Could not find table 'diagnostics_data' 

所以,即使我要從頭開始,我如何才能導軌連接到現有的表,具體來說,我想在一個簡單的腳手架中使用它,所以我可以放棄我的示例代碼,以使用我的表中的模型與一些很酷的視圖和控制器。

+0

你的config/database.yml文件是什麼樣的? – Max 2012-02-24 03:55:11

+0

開發:主機:本地主機適配器:postgresql數據庫:診斷端口:5431用戶名:naem密碼:似乎是非常標準的。謝謝您的幫助! – 2012-02-24 06:14:38

+0

我懷疑這是事實,但你說你的數據庫被稱爲'Diagnostics',但是你剛剛發佈的代碼將db名稱指定爲'diagnostics'(小寫字母d)。 – Max 2012-02-24 06:49:51

回答

5

因此,當您在編輯database.yml文件後使用rails與現有數據庫時,您不需要在模式文件中搞清楚。

只需打開你的模型文件,做這樣的事情

class Mammals < ActiveRecord::Base 
    set_table_name "tbl_Squirrels" 
    set_primary_key :squirrel_id 
end 

,如果你想引用他們,你在示例代碼中寫的方式,你可以指定所有列名在這裏。

這裏有一些神奇的地方,除非另有說明,rails的名稱如「Id」會自動成爲主鍵。以及「tablename_id」將是表名的外鍵。

+0

非常感謝你! – 2012-02-24 19:12:31

相關問題