2015-01-27 3 views
1

이해할 수있는 제목을 찾는 방법을 정확히 알지 못하여 문제를 설명하기 위해 최선을 다할 것입니다. 나는 모든 지역의 배열을에 geting 할 일은 같은 나라의 배열을 형성 할 어느 나라많은 개체 연결의 배열 가져 오기

belongs_to 지역 - 이름으로의 세계화와 함께 국가 번역, 많은 지역 - :

나는이 개 모델이있다.

예.

Country.all.regions 
Country.with_translations(I18n.locale).order("country_translations.name asc").regions 

이 배열을 쉽게 얻을 수있는 방법이 있습니까? 문어 폴 @에서

+1

Country.all.map {| 국가 | country.regions} .flatten – cristian

+0

정확히 내가 찾던 것을 감사드립니다. 나는 당신의 대답으로 다른 사람들에게 대답했습니다! –

답변

4

에서 @ 문어 폴 솔루션은 작동하지만, N + 1 쿼리 문제가 있습니다. 이를 피하려면 includes 메소드를 사용하십시오. 자세한 내용은 여기

Country.includes(:regions).all.map {|country| country.regions }.flatten 

읽기 : http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

+3

여기서 할 수있는 좋은 속임수는'.map {...} .flatten' 대신'.flat_map {...}'을 사용하는 것입니다. – antinome

0

:

Country.all.map {|country| country.regions }.flatten