2012-02-24 11 views
1

私はRailsを初めて使っていますが、私はかなりの検索をしましたが、この問題には何もうまく対応していません。それは単純なもののようです。Rails 3の既存のPostgresテーブルの使い方

私はNetbeansを使用しています(違いがある場合)。

私は、その内部診断 と呼ばれるPostgresデータベースがdiagnostics_dataと呼ばれるテーブルである必要があります。それはデータで満たされています。他のアプリケーションによって生成され、毎日更新される非常に多くのもの。時々変更される数百の列があります。私のレールアプリケーションは、単にそのデータを取得し、それを動的なWeb環境にプロットします。私は、私がRailsで作ったサンプルDBでプロットルーチンを見つけましたが、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

+0

開発:ホスト:localhostアダプタ:postgresqlデータベース:診断ポート:5431ユーザ名:naemパスワード:かなり標準的なようです。助けてくれてありがとう! –

+0

これは疑わしいですが、あなたのデータベースは「診断」と呼ばれていましたが、投稿したコードはdb名を「診断」(小文字のd)と指定しています。 – Max

答えて

5

したがって、database.ymlファイルを編集した後に既存のデータベースと一緒にレールを使用する場合、スキーマファイルで心配する必要はありません。

は、ちょうどあなたがそれらを使用すると、サンプルコードで書いた方法を参照したい場合は、あまりにもここでのカラム名のすべてを指定することができ、あなたのモデルファイルを開くと、この

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

ような何かを行います。

ここでは、特に指定がない限り、「Id」などの名前が自動的にプライマリキーになるような魔法があります。 「tablename_id」はtablenameの外部キーになります。

+0

パーフェクトありがとうございました! –

関連する問題