2017-10-09 9 views
1

私はrailsの世界には新しく、レールプロジェクトには既存のデータベースを使用する必要があります。例えば、 "games"テーブルにはカラムがありませんcreated_atとupdated_atをpostgres端末に追加すると、railsはテーブルをオブジェクトとして認識します(「ゲーム」など)?または私のデータベース内の各テーブルのモデルを生成する必要がありますか?オブジェクトのようなすべてのテーブルをフェッチしてコントローラから使用する正しい方法は何でしょうか?postgresデータベースをRailsのネイティブであるかのように使う

+0

"rails reverse engineering postgres"を検索します。 –

答えて

0

コメントで述べたように、1つのバージョンは自動的にすべての関連付けを使用してデータベーステーブルのモデルを生成するリバースエンジニアリングの宝石のいくつかの種類を使用することで、外部キーなど

しかし、あなたがレールに新しく追加された場合

  1. これらの宝石は、名前空間(鉱山の固体推測)などを理解できないだろう:私は間違いなく手で理由のカップルのためにやっていることを示唆していますadmin_users,admin_other_table,admin_suggestionsテーブルをお持ちの場合は、ルビの最も合理的なクラス名はAdmin::User,Admin::OtherTable,Admin::Suggestionとなりますが、これらの宝石が理解できる方法はありません。

  2. それはテーブルとは異なるモデルに名前を付ける(そしてself.table_name=で正しいテーブルをマッピングするために、より理にかなっている場合は、宝石が助けにはなりません。

  3. 団体は、あなたの唯一の方法、その後に定義する必要がある場合モデルにはまったく役に立たないコードがたくさんあります(「外国人のキーがauthor_idの記事がたくさんある」場合は、user.articlesメソッドが必要ないかもしれませんが、とにかくそれを取得するつもりです)

おそらくもっと多くのケースがありますouldは手作業で行うことを強く推奨しているので、どのような種類のコードが書かれているかを完全に制御できます。

関連する問題