通过STI表接受嵌套属性

时间:2016-01-26 23:38:19

标签: ruby-on-rails

我有两张桌子 - stagelist。每个表都有两个模型继承 - PipelistStage/HotlistStagePipelist/Hotlist。管道列表/热门列表has_many pipelist_stages / hotlist_stages,应该接受相应关联的嵌套属性。

以下是这些模型的简要实现:

阶段:

class Stage < ActiveRecord::Base
  def self.types
    %w(PipelistStage HotlistStage)
  end
end

class PipelistStage < Stage
  # Implementation similar to HotlistStage
end

class HotlistStage < Stage
  belongs_to :hotlist, inverse_of: :hotlist_stages
end

和列表......

class List < ActiveRecord::Base
  def self.types
    %w(Hotlist Pipelist)
  end
end

class Hotlist < List
  has_many :hotlist_stages, inverse_of: :hotlist

  accepts_nested_attributes_for :hotlist_stages, allow_destroy: true
end

class Pipelist < List
  # Implementation similar to Hotlist
end

我遇到的问题是当我尝试通过Hotlist更新HotlistStagesAttributes时。我得到错误'没有这样的列:stages.hotlist_id`。 accepts_nested _...

有没有办法让accepts_nested_attributes_for引用stages.list_id列,而不是stages.hotlist_id

如果有什么我可以更清楚地解释,请告诉我。 谢谢!!

0 个答案:

没有答案