既存のmysqlデータベースを指すようにdatabase.ymlを構成しました
どうすればそれからモデルを生成できますか?
Rails generate model existing_table_name
空のモデルのみを提供します。
Railsモデルにはフィールドが表示されませんが、引き続き使用できます。次のことを試してください。 ModelNameという名前のモデルと "name"という名前のフィールドがあると仮定して、Railsコンソールを起動して次のように入力します。
ModelName.find_by_name('foo')
DBに存在する名前を指定すると、結果が表示されます。
Railsは関係を推測しませんが、データベースがRailsの規則に従っている場合は、簡単に追加できます。
更新
この特定の明示性の欠如(「魔法」)が、Railsの初心者にとって混乱の原因であることに気づきました。いつでもschema.rb
を調べて、モデルとすべてのフィールドを1か所で確認できます。また、モデルファイル内の各モデルのスキーマを確認したい場合は、 annotate_models gemを使用できます。これにより、dbスキーマがモデルファイルの上部のコメントに配置されます。
Rmre を試すことができます。既存のスキーマのモデルを作成でき、外部キー情報に基づいてすべての関係を作成しようとします。
あなたの答えは:
$ rake db:schema:dump
これにより、DBのスキーマを作成するための新しいdb/schema.db
が設定されます。
試してみてください Magic Model Generator
ActiveRecordはスキーマ定義を解析しません。 DBMにテーブル定義を要求し、その場でフィールドを把握します。
スキーマを持つことは、移行によってテーブルを変更する場合に役立ちます。 Schema Dumping and You
ダンプして、移行を構築するための参照として使用するのに役立ちます。
ActiveRecordは、テーブルの命名についていくつかの仮定を行い、id
フィールドがタイプとして連番を持つ主キーであることを期待しています。移行を行うと、テーブルやフィールド名、タイプをリファクタリングするのに役立ちますが、DBMのコマンドラインから同じことを行うことができます。 ActiveRecordのスタイルに従う必要はありませんが、そうすることで奇妙なエラーを回避し、ARが物事を推測して生活を楽にすることができます。
Rare_mapgemを見てください。 https://github.com/wnameless/rare_map Rail3と4の両方で機能します。