我即将在我的 Rails 2.3 应用程序中使用 STI。
我已经按照以下方式对其进行了建模:
基类:
class Tariff < ActiveRecord::Base
def self.inherited(child)
child.instance_eval do
def model_name
Tariff.model_name
end
end
super
end
def self.select_options
descendants.map { |c| c.to_s }.sort
end
end
它的子类:
class FlatRateTariff < Tariff
end
class TimeOfUseTariff < Tariff
has_many :tariffing_periods, :dependent => :destroy
accepts_nested_attributes_for :tariffing_periods, :allow_destroy => true
end
当我尝试创建一个form_for :tariff时,我得到了一个未定义的方法 `tariffing_periods' 用于 Tariff。我应该如何对这种情况进行建模?我应该把 has_many 关联放在父类上吗?