我有一个关于 Rails 中 STI 的问题,我似乎无法理解。
我有2个模型,order.rb
class Order < ActiveRecord::Base
has_many :answers
end
和answer.rb
class Answer < ActiveRecord::Base
belongs_to :order
attr_accessible :value, :input_id, :type
end
answer.rb
还有几个 STI 课程,例如select.rb
class Select < Answer
validates presence: true
end
这样做的原因是我希望能够对不同类型的答案进行自定义验证和计算。
一切正常,直到我尝试在与每个订单相关联的答案上创建 fields_for。我能够在呈现表单时启动每个 STI 类。然而,当提交表单时,所有答案都将在数组中结束,answers_attributes
并且都将被视为class Answer
代替 example class Select
。
有人对我如何解决这个问题有一些想法吗?
谢谢!