次の属性を持つ単一テーブル継承を利用する変更モデルがあります。
id
type #this is a single table inheritance type field.
description
dynamic_id
また、ChangeのサブクラスであるRaceとRaceのサブクラスであるWorkoutの2つのサブクラスがあります。
class Race < Change
end
class Workout < Race
end
Trackという4番目のクラスがあり、Changeオブジェクトのdynamic_idフィールドを使用して、次の4つの関連付けを作成したいと思います。(つまり、Changeテーブルにrace_idとworkout_idを明示的に追加していません。代わりに、dynamic_idをRaceクラスのrace_idとして使用し、dynamic_idをWorkoutクラスのworkout_idとして使用します)これを行うことで、多くのことを回避できます。私のデータベースのnilフィールドの。)
これが私が作成しようとしている4つの関連付けです。
- レースモデル-belongs_to:track
- ワークアウトモデル-belongs_to:track
- トラックモデル-has_many:races
- トラックモデル-has_many:workouts
:class_nameと:foreign_keyを使用して関連付けを使用してこれを実現しようとしていますが、機能していないようです。これは実際に可能ですか。おそらくベストプラクティスではないことは承知していますが、それでも実行可能かどうかを確認したいと思います。ご入力いただきありがとうございます。