我有一个使用 STI 的具有多个子类的父模型帐户。我想将另一个模型Transaction使用 belongs_to 关系关联到Account。引用的帐户可以是Asset或Liability。
class Account < ActiveRecord::Base end
class Asset < Account end
class Liability < Account end
我的交易模型belongs_to Account
class Transaction < ActiveRecord::Base
belongs_to :account #Either an Asset or Liability model
end
我希望能够将交易帐户设置为资产或负债。但是,当我将交易的帐户设置为 Asset 或 Liablity 时出现 TypeMismatch 错误,因为它不是父类Account。
注意:我认为这可以使用 belongs_to 关联上的多态性来解决,但是当引用的模型都使用相同的基础表时,似乎没有必要在类型列中指定类。