web-dev-qa-db-ja.com

rails 3:既存のデータベーステーブルのモデルを生成する方法

既存のmysqlデータベースを指すようにdatabase.ymlを構成しました

どうすればそれからモデルを生成できますか?

Rails generate model existing_table_name

空のモデルのみを提供します。

17
dark_ruby

Railsモデルにはフィールドが表示されませんが、引き続き使用できます。次のことを試してください。 ModelNameという名前のモデルと "name"という名前のフィールドがあると仮定して、Railsコンソールを起動して次のように入力します。

ModelName.find_by_name('foo')

DBに存在する名前を指定すると、結果が表示されます。

Railsは関係を推測しませんが、データベースがRailsの規則に従っている場合は、簡単に追加できます。

更新

この特定の明示性の欠如(「魔法」)が、Railsの初心者にとって混乱の原因であることに気づきました。いつでもschema.rbを調べて、モデルとすべてのフィールドを1か所で確認できます。また、モデルファイル内の各モデルのスキーマを確認したい場合は、 annotate_models gemを使用できます。これにより、dbスキーマがモデルファイルの上部のコメントに配置されます。

10
Mark Thomas

Rmre を試すことができます。既存のスキーマのモデルを作成でき、外部キー情報に基づいてすべての関係を作成しようとします。

15

あなたの答えは:

$ rake db:schema:dump

これにより、DBのスキーマを作成するための新しいdb/schema.dbが設定されます。

3
Glauco Roberto

試してみてください Magic Model Generator

1
Pasted

ActiveRecordはスキーマ定義を解析しません。 DBMにテーブル定義を要求し、その場でフィールドを把握します。

スキーマを持つことは、移行によってテーブルを変更する場合に役立ちます。 Schema Dumping and You ダンプして、移行を構築するための参照として使用するのに役立ちます。

ActiveRecordは、テーブルの命名についていくつかの仮定を行い、idフィールドがタイプとして連番を持つ主キーであることを期待しています。移行を行うと、テーブルやフィールド名、タイプをリファクタリングするのに役立ちますが、DBMのコマンドラインから同じことを行うことができます。 ActiveRecordのスタイルに従う必要はありませんが、そうすることで奇妙なエラーを回避し、ARが物事を推測して生活を楽にすることができます。

1
the Tin Man

Rare_mapgemを見てください。 https://github.com/wnameless/rare_map Rail3と4の両方で機能します。

0
user3360932