首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问其中的子模型属性

问如何访问其中的子模型属性
EN

Stack Overflow用户
提问于 2016-02-06 20:39:07
回答 1查看 998关注 0票数 1

假设我有两个模特:

竞选和资格认证。竞选has_one :qualification和资格认证belongs_to :campaign。

假设资格具有male_gender布尔属性,找到所有具有male_gender == true限定条件的活动的最有效方法是什么?

一种方法是循环使用male_gender索引的限定。创建一个campaign_ids数组,然后使用这些ids获取活动,但这似乎不太有效。

理想情况下,我想做一些像Campaign.where("qualification.male_gender: true")这样的事情

这有可能吗?有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-06 20:43:02

你当然能做到。使用联接,您可以引用where查询中的另一个表:

代码语言:javascript
复制
Campaign.joins(:qualification).where(qualifications: {male_gender: true})

富Peck编辑

您也可以将其放入作用域中。

代码语言:javascript
复制
#app/models/campaign.rb
class Campaign < ActiveRecord::Base
   scope :male_gender, -> { joins(:qualification).where(qualifications: {male_gender: true}) }
end

..。这将允许您调用@campaigns = Campaign.male_gender

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

https://stackoverflow.com/questions/35246196

复制
相关文章

相似问题

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