테이블에서 가져온 행 집합이 있습니다. 오브젝트 레이팅을 가정 해 봅시다. 이 객체를 가져온 후 데이터베이스에서 100 개의 항목을 말합니다.ActiveRecord Association 콜렉션 객체에 대한 쿼리
평가의 목적은 다음과 같습니다
table_ratings
t.integer :num
그래서 내가 지금 무엇을 원하는 다른 쿼리를 수행하지 않고이 100 행에 대한 몇 가지 계산을 수행합니다.
r = Rating.all
good = r.where('num = 2') # this runs an additional query
"#{good}/#{r.length}"
이것은 내가하고 싶은 것을 매우 거친 생각이다, 나는 구축하기 위해 다른 더 복잡한 출력이 : 내가 추가 쿼리를 실행,이 작업을 수행 할 수 있습니다. 이 행에서 수행해야하는 10 가지가 넘는 계산이 있다고 가정하고 SQL 쿼리에서 앨리어싱을 지정하는 것이 가장 좋은 방법은 아닙니다.
위의 r.where 쿼리를 대체하는 효율적인 방법은 무엇입니까? 거기에 루비 메서드 또는 내게 ActiveRecord 협회 컬렉션 개체에 비슷한 쿼리 API를 줄 보석인가요?
감사합니다, 당신은 나에게 좋은 출발점을 제공했습니다. –
선택은 내가 필요한 것에 대한 완벽한 방법이었습니다. 자신이 많이 사용하고있는 다른 배열 방법이 있습니까? 전체 배열 문서를 공부할 시간이 없지만 몇 가지 중요한 방법을 연구하고 싶습니다. –
대답을 수락했습니다. 감사. –