0
我有一個關於軌道中的STI的問題,我似乎無法得到我的頭。嵌套模型上的軌道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
也有像select.rb
class Select < Answer
validates presence: true
end
幾個STI類的原因是,我希望能夠進行自定義驗證並針對不同類型的答案進行調查。
一切正常,直到我試圖做出與每個訂單相關的答案fields_for。渲染表單時,我能夠灌輸每個STI類。然而,所有的答案都會在提交表格時以answers_attributes
排列,並且將全部視爲class Answer
而不是例如class Select
。
任何人都知道如何解決這個問題?
謝謝!
嗯,問題是某些STI類具有通過attr_accessor的動態屬性,這些動態屬性在表單中呈現,然後在STI模型中解析爲值。所以我覺得我發佈表單時需要他們加入他們的STI課程。 – nbon
你可能想檢查[這篇文章](http://stackoverflow.com/questions/555668/single-table-inheritance-and-where-to-use-it-in-rails) – fotanus