首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用带有.includes down和up多个嵌套级别的.where IN子句在Rails 3.1中查找一组ID

使用带有.includes down和up多个嵌套级别的.where IN子句在Rails 3.1中查找一组ID
EN

Stack Overflow用户
提问于 2012-07-28 01:43:39
回答 1查看 92关注 0票数 1

我想按学生班级筛选家长电子邮件地址列表。

以下是我的模型的简化:

代码语言:javascript
复制
Class District
 has_many :schools
 has_many :families
 has_many :children, :through => :families
 has_many :parents, :through => :families
 has_many :enrollments, :through => :children
end


Class Enrollments
 belongs_to :child
 belongs_to :classroom
end

电子邮件地址与家长记录相关联,我想按教室ID数组过滤电子邮件。

我可以让它工作:

代码语言:javascript
复制
idees = [49, 50]
current_district = District.first
@emails = current_district.parents.includes(:family => { :children => { :enrollments => {:classroom => { :program => :location }}}}).where("family_id IN (?)", idees)
# Returns families with ID 49 and 50

但我不能让这样的东西工作

代码语言:javascript
复制
idees = [49, 50]
current_district = District.first
@emails = current_district.parents.includes(:family => { :children => { :enrollments => {:classroom => { :program => :location }}}}).where("family.children.enrollments.classroom_id IN (?)", idees)
# Returns: PGError: ERROR:  cross-database references are not implemented: family.children.enrollment.classroom_id

我做错了什么?或者有没有另一种更好的方法来编写这个查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-28 03:32:24

下面这行就是问题所在。

代码语言:javascript
复制
where("family.children.enrollments.classroom_id IN (?)", idees)

将其更改为:

代码语言:javascript
复制
where("enrollments.classroom_id IN (?)", idees)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11692957

复制
相关文章

相似问题

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