:액티브 :하지만 .where.not (foo는 "바") : 성공적으로 이야기 해봐 ("바"foo는)으로 조회 할 수 올바른 결과를 반환하지 않습니다 나는 쿼리과 같이 구축
@events = current_organization.events.order(started_at: :asc)
status
이 "canceled"
이 아닌 모든 이벤트를 쿼리하고 싶습니다. 그러나 다음과 같은 쿼리를 사용할 때 :
current_organization.events.order(started_at: :asc).where.not(status: "canceled")
아무 것도 반환하지 않습니다. 그러나, 단지 실험과를 위해 나는 노력 :
@events = current_organization.events.where(status: "canceled")
그것은 성공적으로 취소 된 이벤트를 반환했습니다. 어떤 이유로 인버스가 작동하지 않습니다. 그 이유가 무엇입니까?
편집 : 찾을 수있는 유일한 주위의 where(status: nil)
사용하고 있지만 정말 직관적이지 않습니다.
#to_sql 출력을 확인하십시오. 이것은 SQL 문을 디버깅하는데 유용합니다 current_organization.events.order (started_at : : asc) .where.not (상태 : "취소") to_sql –
이벤트 모델에'default_scope'가 설정되어 있습니까? 어디에요 (상태 "취소") – mysmallidea
@MickeySheu 여기서, 다른 출력 '@Events = current_organization.events.order (: ASC started_at)이다. to_sql' '=> 이벤트 \ "선택"\ " * "events_"= "조직 _id"= 1 AND \ "이벤트 \"상태 \ "="취소 "\"이벤트 \ "순서 \"시작 \ "이벤트 \ "ASC"' '@Events = current_organization.events.order (started_at : ASC) .where.not (상태 : "취소"). to_sql' '=> "SELECT \"이벤트 \ "* FROM. \ "events \"\ "events \"\ "events \"= \ "events \"started_at \ "events \"\ "events \ "ASC" – Antonio