假设我已经建立了这个协会:
class Budget
has_many :forfeitures
scope :with_forfeitures, ->{ joins(:forfeitures) }
end
class Forfeiture
belongs_to :budget
scope :between, ->(from, to) { where("created_at > ? AND created_at < ?", from, to)}
end
现在我可以这样做:
Budget.with_forfeitures.where("forfeitures.created_at > ? AND forfeitures.created_at < ?", from_date, to_date)
但请注意,我必须between
在原始 sql 中编写我的范围。
我可以做一些类似Budget.with_forfeitures.between(from_date, to date)
但between
适用于没收的事情吗?如果我不能这样做,我如何在不复制between
原始 sql 范围的情况下获得相同的结果?