将where语句中的条件应用于所有连接元素

时间:2014-08-26 07:05:28

标签: sql ruby-on-rails join

我想知道是否有一种方法只有在条件适用于所有连接元素的情况下才能返回SQL。

例如:

Policy.joins(:installments).where("date <= ?" , Time.current)

如果某个政策有3个分期付款,其中一个政策的日期早于Time.current,则会返回此政策。

我想知道是否有一种简单的方法可以在它的所有分期付款都早于Time.current时返回此政策?

1 个答案:

答案 0 :(得分:1)

您将能够使用条件ActiveRecord关联:

#app/models/policy.rb
Class Policy < ActiveRecord::Base
   has_many :installments, -> { where "date <= ?", Time.current }
end

这将使您能够调用@policy.installments,只接收条件参数中规定的记录!