-1

我有以下情况

class XYZ < ActiveRecord::Base
has_many :abcs
end

class ABC < ActiveRecord::Base
belongs_to :xyz
end

class A < ABC
end

class B < ABC
end

class C < ABC
end

模型 ABC 没有任何控制器或视图。与 ABC 相关的数据将从 XYZ 视图和控制器中插入。用户为 ABC 设置一个类型值,它可能是 A、B 或 C。

并且根据类型,必须实例化相应的 STI 子类,并且必须适当地保存数据。但是这里的子类没有被实例化,数据被完美地保存了。但是我这样做是错误的,因为我已将子类的代码写入父 STI 类,因为该代码没有在子类中被调用。

请给出建议并提供一些解决方案或教程。

提前谢谢。

4

1 回答 1

0

确保ABC模型具有type属性,并且在保存这些类的实例时将其正确设置为“A”、“B”或“C”。

ABC.find然后朋友应该返回相应类的实例。

创建新对象时,您当然需要控制器中的一些代码来new根据某些输入参数调用正确的子类。

于 2010-09-15T08:28:12.293 回答