首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >的Rails设置属性:直通模型

的Rails设置属性:直通模型
EN

Stack Overflow用户
提问于 2015-04-07 09:59:04
回答 1查看 32关注 0票数 1

考虑以下(人为的)示例模型关系:

代码语言:javascript
复制
class Yolk < ActiveRecord::Base
  has_many :whites, through: :eggs

  # has all sorts of interesting properties, like powderiness
end

class Egg < ActiveRecord::Base
  belongs_to :yolk
  belongs_to :white

  # The egg has a color property!
end

class White < ActiveRecord::Base
  has_many :yolks, through: :eggs

  # has its own set of properties, such as shininess
end

(请注意,鸡蛋具有颜色属性--这很重要!)

如果我想在设置鸡蛋本身的颜色属性的同时向一个白色的蛋黄(创建一个鸡蛋)添加一个蛋黄,我该如何做呢?

给出了一个变量名为Whitewhite实例和一个具有可变名称yolkYolk实例

white.yolks << yolk不允许我设置被创造的蛋的颜色,

但是Egg.create(white: white, yolk: yolk, color: 'blue')没有更新变量white.yolks以包含新的yolk

如何在更新white.yolks的同时创建一个有色的蛋?

更新:我意识到,在现实世界中,每个鸡蛋只得到一个蛋黄或白蛋黄;我的类比在这里有点支离破碎。因此,为了澄清问题的范围,我不想将项目之间的关系更改为has_one,也不想创建一个拥有所有属性的模型;只是假装一个鸡蛋可以有很多蛋黄和蛋白(出于某种原因)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 10:13:46

如果我想在设置鸡蛋本身的颜色属性的同时向一个白色的蛋黄(创建一个鸡蛋)添加一个蛋黄,我该如何做呢?

直接回答这个问题。

代码语言:javascript
复制
white.eggs.create!(yolk: yolk, color: 'blue')

考虑到whiteWhite的实例,yolkYolk的实例。

注意:您只需将has_many :eggs添加到WhiteYolk模型中,就可以以相同的方式进行查询。

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

https://stackoverflow.com/questions/29488826

复制
相关文章

相似问题

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