Tutor
とSession
の2つのクラスが同じ子クラスField
を多相関係で共有しています。Railsで多態性を持つ別のオブジェクトから子オブジェクトを作成する方法
チューターがセッションを作成するときに、チューターからセッションに自動的にコピーされるタイトルを持っています(つまり、新しいエントリが 'フィールド'テーブルに追加されます)。例えば、
t = Tutor
Session.fields.build_from_tutor(t.fields)
私はちょうどbuild_from_tutor方法を構成しています。これを行うためのRails/Rubyの方法はありますか?
ありがとうございます。
ありがとうございました。いいえ、私は2つのクラスについて同じエントリーを望みません。先生の各トピックについて、1つのレコードがあります。セッションの各トピックについて、別のレコードがあります。トピックは、チューターとセッションとの多形性の関係を持っています。 – AdamNYC
多分私は質問が表現された方法で混乱しています。もしFieldsが本当に多態的で、 'Tutor'から' Session'にコピーされたいのであれば、 'Session'と同時に' Tutor'を作成しなければならない場合、コールバックを使うことができます: ''クラスの先生。 after_save:make_session; def make_session; self.topic.build_session(:title => self.title); end; end'このアプローチの問題は、3NFとDRYの原則に違反していることです。データベース内の情報を複製しています。 'title'が2つのレコードに存在する必要がある場合は、DBスキーマを修正する必要があります。 –