Rails 3 を使用して (これが Rails 2.x で異なるかどうかは確認していません)、ジェネレーターを使用してモデルを作成する場合、たとえば:
rails generate model Person first_name:string last_name:string
作成する Person モデル クラスで first_name または last_name 属性を宣言しません。つまり、移行によりDBにフィールドが作成され、動的言語マジックにより実行時にそれらを設定できます。ただし、モデルクラスは、モデルで使用できる属性についての一種の「ドキュメント」であると考えています。したがって、ジェネレーターがそれらを追加しないのは奇妙です。
私は追加しています:
attr_accessor :first_name, :last_name
私のモデルクラスに。またはさらに良いのは、attr_accessibleです。ただし、それでも、データ型が何であるかは明確ではありません。
他の人の考えがどうなっているのか、私はただ興味があります:
- ジェネレーターがデフォルトでこれを行わないのはなぜですか?
- アクセサを自分で追加しますか? なぜですか、そうでないのですか?
- おまけ: どういうわけかデータ型を指定できますか?
更新: attr_accessor は忘れてください。これが意味をなさない理由がわかります。代わりに attr_accessible を追加する必要があるとしましょう。それでも、上記の質問に対する人々の考えが欲しいです。