この関連付けを確立したとしましょう:
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)ことをすることはできますか? それができない場合、生のSQLでスコープbetweenを複製せずに同じ結果を得るにはどうすればよいですか?between