私は現在、Rails 3 アプリケーションに取り組んでいます。このアプリケーションは、いくつかのモデルで Class Table Inheritance を使用する必要があるようです。
何が起こっているかの簡単な例はこれです。
アプリケーション内のすべてのタイプの人々に共通で、認証に使用される、名前、電子メール、パスワードなどの一般的な属性を持つ Person というクラスがあります。
Person (または 2 種類の人) には、Driver と Passenger の 2 つのサブクラスがあります。これらのサブクラスはどちらも Person の一般的な属性を共有していますが、それ自体に固有の特定の追加属性を持っています。(たとえば、ドライバーは多くの車両とライセンスを持つことができますが、乗客はそうではありません)
この種の状況で CTI を実装するにはどうすればよいですか? ここで提供される例を見てきました:
http://rhnh.net/2010/08/15/class-table-inheritance-and-eager-loading
しかし、Driver オブジェクトまたは Passenger オブジェクトから Person の共通属性にアクセスする方法については推測していないため、少し混乱しています。
特に、私が知りたいのは次のことです。
Driver の属性を更新する場合、親 people テーブルの関連する属性に簡単にアクセスして更新するにはどうすればよいですか? after_save コールバックにフックして、どの属性の更新がどこに行くのかを分離する必要がありますか? または、これにアプローチするより良い方法はありますか?