gpt4 book ai didi

ruby-on-rails-3 - 与 STI 模型的动态类型关联

转载 作者:行者123 更新时间:2023-12-04 07:19:24 25 4
gpt4 key购买 nike

我有一个父模型Account,其中包含多个使用 STI 的子类。我想使用 belongs_to 关系将另一个模型 Transaction 关联到 Account。引用的帐户可以是 Assets 负债

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

我的交易模型属于账户

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

我希望能够将交易帐户设置为 Assets 或负债。但是,当我将事务的帐户设置为 Assets 或负债时,我收到类型不匹配错误,因为它不是父类帐户

注意:我认为这可以通过在 belongs_to 关联上使用多态性来解决,但是当引用的模型都使用相同的基础表时,似乎没有必要在类型列中指定类。

最佳答案

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

我收到的类型不匹配错误是因为我的 STI 基类实际上是“Account::Base”,而我只是将“Account”作为类名。

关于ruby-on-rails-3 - 与 STI 模型的动态类型关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4772177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com