【发布时间】:2012-04-29 21:34:13
【问题描述】:
我有以下域类:
class Rating < ActiveRecord::Base
validates :kind_id, presence: true # Kind of rating (Class, Type, ...)
end
等级指定飞行员可以驾驶什么级别或类型的飞机。如果飞行员有一个班级评级,我们需要知道哪个班级,所以我们将 ID 存储在 STI 表中。
class KlassRating < Rating
validates :klass_id, presence: true
end
如果飞行员有类型评级,我们需要知道是哪种类型,因此我们将 ID 存储在 STI 表中。
class TypeRating < Rating
validates :type_id, presence: true
end
我遇到的问题是如何在表单中获取用户的输入。我现在拥有的表单总是实例化Rating,无论用户是否在下拉列表中选择了类或类型评级。因此,我的验证从未被评估过。
如何让 Rails 实例化正确的派生类?
【问题讨论】:
标签: ruby-on-rails single-table-inheritance