この関連付けを確立したとしましょう:
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