어떻게 레일스 방식으로 작성합니까? 모델 - 관리자가 있습니다. manager_level이 5 인 조건을 만족하는 모든 레코드를 삭제하고 싶습니다.레일 - 조건을 충족하는 모든 레코드 삭제
감사합니다.
어떻게 레일스 방식으로 작성합니까? 모델 - 관리자가 있습니다. manager_level이 5 인 조건을 만족하는 모든 레코드를 삭제하고 싶습니다.레일 - 조건을 충족하는 모든 레코드 삭제
감사합니다.
내가 대신 삭제의 파괴 사용하는 것이 좋습니다 생각 :
Manager.where(:manager_level => 5).destroy_all
이 작동합니다 :
Manager.where(:manager_level => 5).delete_all
참고 :이 종속 레코드를 제거하지 않습니다.
이 시도 :
Manager.delete_all(manager_level: 5)
1. I 삭제할 것을 지정하는 변수를 사용해야합니다. 2. 테이블에 인덱스가 없으며 다른 두 테이블 사이의 커넥터 테이블입니다. –
저를 위해 일하지 않았습니다. 참조 무결성으로 인해 오류가 발생했습니다. –
다른 쿼리가 삭제하기 전에 SELECT를 시도 할 때 허용되는 대답이어야하며 대용량 데이터 집합에서 성능 문제가 발생합니다. – toobulkeh
확실히 유효하지만 다음 사항에 유의하십시오. "각 레코드를 인스턴스화하고 destroy 메소드를 호출하여 조건과 일치하는 레코드를 삭제합니다." (http://apidock.com/rails/ActiveRecord/Relation/destroy_all) 이것은 큰 결과 집합에 대해서는 매우 느릴 수 있습니다. –
그래, 나는 모델 일관성과 물건을 유지하는 것에 대해 생각하고 있었다. – MurifoX
@ MurifoX - 파괴가 파괴보다 낫다고 생각하는 이유를 설명 할 수 있습니까? 반드시 동의하지 않아도되지만, 답을보다 완벽하게 작성하는 데 도움이됩니다. –