작업 우선 순위와 관련하여 AND
및 OR
과 함께 여러 조건을 구성하는 것에 대한 질문이 있습니다. 내가 Arel으로 재 작성AND 및 OR이있는 복잡한 Arel 조건
where("NOT ((assignments.to IS NOT NULL AND assignments.to < :start_date) OR assignments.from > :end_date)", start_date: date.at_beginning_of_week, end_date: date.at_end_of_week)
:
그래서, 나는 where
방법에 전달하는 SQL 문자열을 다음과 생성 할 필요가
table = Assignment.arel_table
where(
table[:from].gt(date.at_end_of_week).
or(
table[:to].not_eq(nil).and(table[:to].lt(date.at_end_of_week))
).not
)
그러나 Arel는 조건 주위에 괄호를 넣어하지 않습니다 결과로 AND
과이 조건은 잘못된 데이터를 선택합니다. 이 상태에서 어떻게 괄호를 쓸 수 있습니까?
'사용하지 않는 것이 가능하지만 그렇지 않을 수도 있습니다. 나의 경우에는. 그러나 어쨌든 내 질문은 그룹화가 아니라 '아닌'에 관한 질문이었습니다. – bronislav