通常、データベースバックアップされたWebアプリケーションを開発する場合、事前にデータベースの設計(テーブル名、それらのテーブル内の列名、および異なるテーブル間の関連付け)を知っています。
レールでは、maaronsのように、Active Recordパターンを使用しています。モデルはデータベース内のテーブルを表すクラスであり、モデルクラスのインスタンスはそのテーブルの行であり、オブジェクトの異なる属性は同じテーブル内の異なる列の値を表します。
モデルを作成するときは、通常、データベース内のテーブルの1つを表すクラスを作成しています。また、モデルを作成している間は、データベースにテーブルを作成します。これは、テーブルの名前とそのテーブル内の列を知ることを意味します。
あなたの質問にお答えするには、はにはテーブルに含まれるすべての列が必要です。したがって、モデルオブジェクトの属性メソッドとして利用できます。これらの列は、このモデルを生成する際にレールジェネレータによって生成されたマイグレーションのテーブルに追加するように指定します。これは通常誰もがしていることです。
レールモデルジェネレータを実行せずにapp/models/
のクラスを作成し、ActiveRecord::Base
から継承しないでコードを先に実行することができます。開発を進めていくうちに、$ rails generate migration MigrationName
で移行を生成し、必要に応じてテーブルを作成し、[add_column][2]
を使用して列を追加することができます。このモデルのテーブルを作成したら、そのモデルをActiveRecord::Base
から継承して、アプリケーションですべてのRailsの魔法を得ることができます。