Rails在嵌套模型上的STI

时间:2013-04-12 19:19:20

标签: ruby-on-rails ruby-on-rails-3 validation single-table-inheritance

我对导轨中的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,而不是class Select

任何人都知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

Answer.last.becomes(Select)