gpt4 book ai didi

ruby-on-rails - Rails 3.2.11 中模型子目录的单表继承

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

我有一个模型 Sport。使用单表继承,我有 2 个其他模型,CricketFootball 这样

class Cricket < Sport and class Football < Sport

我将这两个模型放在名为 sports 的模型目录中的子文件夹中。我将类型列添加到 Sport 并将值设置为 CricketFootball,任何合适的值。此外,我还能够使用 Cricket.newFootball.new 创建对象。

此结构在 Rails 3.2.6 之前工作正常。

但是现在使用 Rails 3.2.11,子文件夹中的任何模型文件都必须模块化。所以,现在看起来像这样:

module Sports
class Cricket < Sport

现在,rails 无法单独加载类 CricketFootball。因此,Cricket.newFootball.new 不起作用。如果我执行 Sports::Cricket.new,那么这对我来说是个问题,因为类型列必须是类名,即 Sports::Cricket

我应该在 Rails 3.2.11 中做什么才能使单表继承工作?我不想将像 Sports::Cricket 这样的值放在我的类型列中。另外,我不想删除子目录结构。

最佳答案

我自己也遇到过类似的问题。参见 How to reload files in app/models/subdirectory in dev environment for STI .基本上你需要require_dependency你的子类初始化和重新加载,在父类或配置文件中的某个地方。这是一个 Rails 延迟加载的东西,and it doesn't seem like they want to change it .我找到了 Alex Reisner's post也非常有帮助。

关于ruby-on-rails - Rails 3.2.11 中模型子目录的单表继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14607653/

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