3

我有一个父模型帐户与多个使用STI的子类。我想关联另一个模型交易使用belongs_to关系到帐户。所引用的帐户可以是资产责任动态键入与STI模型的关联

class Account < ActiveRecord::Base end 
class Asset < Account end 
class Liability < Account end 

我的交易模型belongs_to的帐户

class Transaction < ActiveRecord::Base 
    belongs_to :account #Either an Asset or Liability model 
end 

我希望能够交易的账户设定为一项资产或负债。但是,当我将交易帐户设置为资产或负债因为它不是父级帐户时,我得到TypeMismatch错误。

注:我觉得这个可以用在belongs_to的关联多态性来解决,但它似乎没有必要指定一个类型列类时引用的车型都使用相同的基础表。

回答

2

事实证明,这段代码的工作原理。您不需要在STI模型的相关模型上指定多态类型。

我收到的类型不匹配错误是因为我的STI基类竟是“帐户::基地”和我根本就“帐户”作为类名。

相关问题