我有以下域类:
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
我遇到的问题是如何在表单中获取用户的输入。我现在的表单总是实例化 a Rating
,无论用户是否在下拉列表中选择了类或类型评级。因此,我的验证从未被评估过。
如何让 Rails 实例化正确的派生类?