나는 item_id 및 key라는 열이있는 레코드 테이블을 가지고 있습니다. Item_id는 Item이라는 테이블을 가리키는 외래 키입니다.ActiveRecord 개수 쿼리 최적화
class Record < ActiveRecord::Base
belongs_to :item
end
class Item < ActiveRecord::Base
has_many :records
end
가 지금은
{
#<Item id: 1, ...> => 19,
#<Item id: 2, ...> => 6,
#<Item id: 3, ...> => 21,
#<Item id: 4, ...> => 33,
}
내가 두 줄이 작업을 수행 할 수와 같은 결과가 보일 것 개별의 키를 사용하여 각 항목에 속하는 레코드 수를 계산하려면 다음과 같이 같은 활성 모델 정의 본다 기록 쿼리 또는 SQL 문 순수 활성을 사용하는 것이 가능하다 만약 내가 궁금
records = Record.select('DISTINCT item_id, key').includes(:item)
records.each_with_object(Hash.new 0) { |e, a| a[e.item] += 1 }
: 해시 객체 계산에.
숫자의 항목에 중복 된 키가 포함되어 있기 때문에 원하는 내용이 아닌 것 같습니다. – ZelluX