首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >has_many和has_one关联

has_many和has_one关联
EN

Stack Overflow用户
提问于 2014-05-20 15:35:29
回答 1查看 67关注 0票数 0

有两种模式:

  1. T
  2. TGroup

TGroup对象可能有许多T对象。TGroup对象有一个最喜欢的T对象。

我想定义将为我提供以下功能的关联:

  1. TGroup.first.ts #将返回属于TGroup.first对象的T对象列表
  2. TGroup.first.favorite #将返回TGroup.first对象的最喜欢的T对象
  3. TGroup.first.ts << T.first #将T.first对象附加到TGroup.first对象
  4. TGroup.first.favorite = T.first #将T.first对象设置为TGroup.first对象的最爱

我试图实现的解决方案是:

  1. 定义T上的t_group_id字段(整数)
  2. 在favorite_id上定义TGroup字段(整数)
  3. 在TGroup模型上定义以下关联

has_many :ts,:class_name => T.to_s has_one :t,:class_name => T.to_s,:foreign_key => :id,:primary_key => :favorite_id

我没有成功地定义“最喜欢”(应该是":as =>:收藏“吗?)所以我用"t“开头。不幸的是,这样做我不能设置TGroup.first.t = T.first。它没有将TGroup.first.t.id设置为T.first.id,而是对T模型进行更改。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-20 15:56:39

我认为您需要的是一个belongs_to关联,而不是一个has_one关联。

根据docs,外键用于声明belongs_to关联的类的表上,所以这样的操作应该可以完成:

代码语言:javascript
复制
belongs_to :favorite, :class_name => T.to_s

根据每个特定的上下文,has_one/ context _to关联有时会有些混乱。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23764252

复制
相关文章

相似问题

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