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基類竟是「帳戶::基地」和我根本就「帳戶」作爲類名。

相關問題