2014-05-17 1 views
0

모든 중첩 된 리소스의 매개 변수를 배열에 추가하고 싶습니다. 주요 자원은 stream하고 중첩 된 자원 videos모든 중첩 된 리소스의 매개 변수를 배열에 추가

@stream = Stream.friendly.find(params[:id]) 
@firstvideo = @stream.videos.first 

내가

array[] = [firstvideo.video_id , secondvideo.video_id , thirdvideo.video_id .....] 

video_id는 각 비디오에 대한 매개 변수입니다 저장할 수 있습니다. 어떻게 이것을 달성 할 수있는 방법을 만들 수 있습니까? 협회에서 동영상 ID를 얻을 수

답변

0

사용 pluck는 :

ids = Stream.friendly.find(params[:id]).videos.pluck(:id) 

이것은 select video_id from videos where ... 쿼리를 생성 만 반환 ID의 배열의 인스턴스를, 사이드 스텝 각 레코드에 대해 Video 객체를 구축하는 고가의 과정을 .

ids = @videos.map(&:id) # equivalent to .map { |v| v.id } 
: 당신이 Video 객체의 이미 인스턴스 목록이있는 경우

, ID의 배열을 생산하는 map를 사용