0

我有一个关于 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

有人对我如何解决这个问题有一些想法吗?

谢谢!

4

1 回答 1

0

我不确定我是否解决了您的问题,但也许您正在寻找becomes

Answer.last.becomes(Select)
于 2013-04-12T22:50:04.640 回答