찾을 :레일 내가 다음과 같습니다 해시의 배열이</p> <p>(AN <code>in</code> 절을 사용하여 필드의 선택 쿼리 쌍) 해시의 배열을 사용하여 기록
[ {product_id: 7629, group_id: 4}, {product_id: 8202, group_id: 3} ]
을 내가 것 배열의 필드 쌍과 일치하는 Items
테이블의 모든 레코드가 반환됩니다.
은 SQL에서 그것은 다음과 같이 검색 할 것입니다 :
SELECT *
FROM items
WHERE (product_id, group_id) IN (VALUES (7629,4), (8202,3))
하지만 데 문제가 레일 .where
절을 사용하여이 작업을 수행하는 데 문제. 이것은 가능한가?
니스! 이것은 제가 제안한 것보다 훨씬 낫습니다. 그러나, 그것은'array.shift'로'array'를 수정하고 있는데, 이상적이라고는 생각하지 않습니다. 'array.drop (1) .inject (Model.where (array.first)) {| m, h | m.or (Model.where (h))}'는 배열을 변경하지 않고 동일한 작업을 수행합니다. – brainbag
그 문제를 해결하기 위해 내 대답이 업데이트되었습니다. – spickermann