首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有多级层次结构和单表继承的has_many

具有多级层次结构和单表继承的has_many
EN

Stack Overflow用户
提问于 2010-01-26 06:55:36
回答 1查看 2K关注 0票数 6

在我的Rails应用程序中,我有一个以下类型的多级层次结构:

代码语言:javascript
复制
class Vehicle < ActiveRecord::Base end
class RoadVehicle < Vehicle end
class Car < RoadVehicle end
class Buss < RoadVehicle end

然后我有一个引用中间层的类,如下所示:

代码语言:javascript
复制
class Garage < ActiveRecord::Base
  has_many :road_vehicles
end

在这个简化的示例中,我为vehicles表提供了一个type列,以启用单表继承。此外,它还包含一个garage_id列,用于启用has_many关系。当我创建一个新的车库并添加汽车和公交车时,所有这些都会按预期添加到数据库中。但是,当我稍后检索garage对象并检查road_vehicles集合时,它是空的。有人能告诉我我哪里做错了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-01-26 08:38:28

在设置与单表继承模型的关联时,您需要引用父模型,以便关联可以推断出表名。因此,在您的Garage类中,您需要:

代码语言:javascript
复制
has_many :vehicles

如果您想将关联限制为RoadVehicles,您可以添加条件:

代码语言:javascript
复制
has_many :vehicles, :conditions => {:type => ['Car', 'Bus']}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2136324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档