是否可以向超类中声明的has_one关联添加选项,而不会丢失超类中声明的选项?像这样:
class AbstractBar < ActiveRecord::Base
self.abstract_class = true
has_one :foo, dependent: :destroy
// Shared validations and stuff for the :foo association
end
class BarA < AbstractBar
// BarA should have association to FooA
has_one :foo, class_name: foo_a
end
class BarB < AbstractBar
// BarB should have association to FooB
has_one :foo, class_name: foo_b
end
上面的例子不起作用,因为dependent: :destroy
将在子类中丢失。
答案 0 :(得分:0)
是的,有可能。
但是BarA
中的foo的foreign_key是bar_a_id
而BarB
中的foo的foreign_key是bar_b_id
可能FooA
和FooB
是Foo
的子类
所以你应该添加像
has_one :foo, class_name: 'FooA', foreign_key: 'bar_id'