[英]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.