繁体   English   中英

Ruby on Rails 4过滤包括模型

[英]Ruby on Rails 4 filtering includes Model

我是Rails的新手,正在尝试进行一些查询,但是失败了。 我有两个ActiveRecord :: Base,如下所示:

class A < ActiveRecord::Base
  has_many :bs
end

class B < ActiveRecord::Base
  belongs_to :a
end

我想显示A中的每一行。在这些行中,B中的每一行(与该A相关),其中B具有任意日期(作为参数传递)。

我已经尝试使用范围,联接,包含,合并,但是似乎没有任何效果。 我想要所有A,而A.bs仅从该特定日期返回B。 在许多情况下,A在特定日期没有B,即使如此,我也希望A返回,而A.bs为空。

那可能吗?

谢谢

您可以使用.includes执行LEFT OUTER JOIN ,它包括A中的记录(左),即使B中的记录不匹配(右)。

@a = A.includes(:bs).where(bs: { due_at: Date.yesterday }).find(params[:id])
@bs = @a.bs # will use the eager loaded collection

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM