Во-первых, я получаю статусы проверки между определенными датами.
date_range = Date.parse(@from_date).beginning_of_day..Date.parse(@to_date).end_of_day
@review_statuses = ReviewStatus.where(updated_at: date_range)
Далее мне нужно применить условие 'И'.
@review_cycle = params[:review_cycle]
if @review_cycle.present?
@review_statuses = @review_statuses.merge(
ReviewStatus.where(evidence_cycle: @review_cycle)
.or(ReviewStatus.where(roc_cycle: @review_cycle)))
end
Теперь для нижеследующего следуетЯ применяю «где» или «слияние».
@status = params[:status]
@review_statuses.where(evidence_status: :pass, roc_status: :pass) if @status == 'pass'
Может кто-нибудь объяснить, когда мы должны использовать merge
вместо where
?