簡體   English   中英

如何在Rails 3中使用現有的Postgres表

[英]How to use an existing Postgres table in Rails 3

我是Rails的新手,但是我已經做了很多搜索,沒有任何事情可以成功解決這個問題。 看起來很簡單。

我正在使用Netbeans,如果有幫助的話。

我有一個名為diagnostics的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'

因此,即使我必須從頭開始,也要如何使Rails連接到現有表,特別是,我想在一個簡單的腳手架中使用它,因此我只需刪除示例代碼即可使用我的模型帶有一些很酷的視圖和控制器的表格。

因此,當您在編輯database.yml文件之后對現有數據庫使用rails時,無需在模式文件中混用。

只需打開模型文件並執行類似的操作

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

如果要按照在示例代碼中編寫的方式引用它們,也可以在此處指定所有列名稱。

除非另有說明,否則rails使用“ Id”之類的名稱會自動成為主鍵是一種神奇。 以及“ tablename_id”將是表名的外鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM