【问题标题】:Rails STI on nested model嵌套模型上的 Rails STI
【发布时间】:2013-04-12 19:19:19
【问题描述】:

我有一个关于 Rails 中的 STI 的问题,我似乎无法理解。

我有两个模型,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

有人知道我该如何解决这个问题吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

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

    Answer.last.becomes(Select)
    

    【讨论】:

    • 嗯,问题是一些 STI 类通过 attr_accessor 具有动态属性,这些属性在表单中呈现,然后在 STI 模型中解析为值。所以我想我需要他们在发布表格时参加他们的 STI 课程。
    • 你可能想检查This post
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多