gpt4 book ai didi

ruby-on-rails - Rails 单表继承 : How to override the value written to the type field

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:53 26 4
gpt4 key购买 nike

在我的系统中,我已经定义了 STI。 Dog 继承自 Animal,在 animals 表中有一个 type 列,其值为 "Dog"

现在我想让 SpecialDog 继承自 dog,只是为了在某些特殊情况下稍微修改一下行为。数据还是一样。我需要通过 SpecialDog 运行的所有查询,以返回数据库中类型为 Dog 的值。

我的问题是因为我有一个 type 列,rails 将 WHERE "animals"."type"IN ('SpecialDog') 附加到我的查询中,所以我不能获取原始的 Dog 条目。所以我想要的是以某种方式覆盖 rails 在通过 SpecialDog 访问数据库时使用的值,使其表现得像 Dog

有没有办法覆盖用于类型列的值 rails ?

最佳答案

这样做感觉有点不好,但据我所知,下面的代码应该可以工作。

def self.sti_name
"Dog"
end

我的另一个建议是,如果可能的话,不要让 SpecialDog 继承自 Dog

关于ruby-on-rails - Rails 单表继承 : How to override the value written to the type field,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15807816/

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