2014-05-17 87 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是每個視頻的參數。我怎樣才能創建一個方法來完成這個?

回答

0

使用pluck從關聯得到的視頻ID:

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

,這將產生一個select video_id from videos where ...查詢,只有實例返回ID數組,側步建設Video對象爲每條記錄的昂貴的過程。

如果你有Video對象已經實例化的列表,請使用map產生一組ID:

ids = @videos.map(&:id) # equivalent to .map { |v| v.id }