【发布时间】:2013-01-01 18:18:13
【问题描述】:
我有一个 Change 模型,它利用具有以下属性的单表继承:
id
type #this is a single table inheritance type field.
description
dynamic_id
我还有两个子类,Race 是 Change 的子类,Workout 是 Race 的子类。
class Race < Change
end
class Workout < Race
end
我有第四个名为 Track 的类,我想通过使用 Change 对象中的 dynamic_id 字段来创建以下四个关联。 (即,我没有明确地将race_id 和锻炼ID 添加到更改表中。相反,我想使用dynamic_id 作为Race 类的race_id,使用dynamic_id 作为Workout 类的锻炼ID)通过这样做,我将避免很多我的数据库中的 nil 字段。)
这是我正在尝试创建的四个关联。
- 种族模型 - belongs_to :track
- 锻炼模型 - belongs_to :track
- 赛道模型 - has_many :races
- 跟踪模型 - has_many :workouts
我一直在尝试通过使用 :class_name 和 :foreign_key 的关联来完成此操作,但我似乎无法使其正常工作。这真的可能吗。我意识到这可能不是最佳实践,但我仍然想看看它是否可行。感谢您的意见。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.1 single-table-inheritance