0

私はモデル「show」を持っていますが、これにはhas_manyの「パフォーマンス」があり、パフォーマンスには特定の「場所」があります。2つ以上の公演が同じ場所にある場合があります。

ショーのパフォーマンスで使用されるすべての場所を取得する方法を探していますが、1回だけです(場所Xで3つのパフォーマンスがある場合、Xを1回だけ取得する必要があります)。

編集:私は今この形にいます:オブジェクトの配列[[performance_id:1, location_id:1],[performance_id:2, location_id:1],[performance_id:3, location_id:2]]。[1,2](一意のlocation_id)を含む配列を取得するにはどうすればよいですか?

4

3 に答える 3

2

配列にカンマを追加しました:

[
  [performance_id:1, location_id:1],
  [performance_id:2, location_id:1],
  [performance_id:3, location_id:2]  ].flatten.map {|h| h[:location_id]}.uniq

 => [1, 2] 
于 2012-05-08T20:51:42.803 に答える
1

これがあなたのためにそれをするかどうかわからない

show.performances.collect(&:location).uniq
于 2012-05-08T19:56:33.770 に答える
1

おそらく次のようなもの

Location.joins(:performances).where(:performances => { :show_id => 5 }).group("locations.id")
于 2012-05-08T20:01:11.880 に答える