加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:04:04 所属栏目:百科 来源:网络整理
导读:我有一个模特运动.使用单表继承我有2个其他模型,Cricket和Football这样 class Cricket Sport and class Football Sport 我把这两个模型放在一个名为sports的models目录下的子文件夹中.我将类型列添加到Sport并将值设置为Cricket或Football,无论什么是合适的.
我有一个模特运动.使用单表继承我有2个其他模型,Cricket和Football这样

class Cricket < Sport and class Football < Sport

我把这两个模型放在一个名为sports的models目录下的子文件夹中.我将类型列添加到Sport并将值设置为Cricket或Football,无论什么是合适的.此外,我能够使用Cricket.new或Football.new创建对象.

这种结构可以正常工作,直到Rails 3.2.6.

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

module Sports
  class Cricket < Sport

现在,rails无法单独加载Cricket或Football类.所以,Cricket.new或Football.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你的子类.这是一个轨道懒惰的东西,and it doesn’t seem like they want to change it.我发现 Alex Reisner’s post也非常有帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读