1
は、Ruby on Railsに、この単純なアプリケーション考えてみましょう:ミックスインとはActiveRecordを使用する方法:一緒ベース
学生&教師を人を拡張します。 人物には&年齢の2つのプロパティがあります。 学生は1つの追加の財産、グレードを持っています。 教師には1つの余分な財産、給料があります。
教師の情報&を別のDBテーブルに保存したいと思います。私はRoRのユーティリティクラスActiveRecord:Base
を利用して、これらのモデルのデータを取得したいと考えています。
class Student < ActiveRecord:Base
include Person
end
module Person
end
質問:
- これは実装の正しい方法ですが
Person
がインスタンス化されることが予想されていないので、次のように、私はStudent
&Teacher
と混ぜることができますか? persons
というデータベーステーブルを作成せずにこれを実装するにはどうすればよいですか?私は2つのテーブル、すなわちstudents
とteachers
を生成したいだけで、どちらも上記の3つのプロパティを持つ必要があります。
これは、 'student'テーブルと' teacher'テーブルの両方に 'name'と' age'フィールドを追加した場合にのみ機能します。 –
はい - 両方に同じ列を追加する必要があります。ちょうど移行でそれをしてください。 –
"Person"の列を継承する目的を破ることはできませんか? – brayne