0

私はレールに不慣れで、ジャンクションオブジェクトに設定されたフィールドに基づいて場所を見つけるためのより効率的な方法があるかどうかを確認しようとしています。関係は、events_locationsを介してイベントに多くの場所があることです。簡単な例を次に示します。

@locations=[]
events_locations = @event.events_locations.where(:fieldvalue=>1)
events_locations.each do |el|
  @locations<<Location.find(el.location_id)
end

それは無駄に思え、多くのクエリを生成する可能性があります。もっと良い方法はありますか?

4

1 に答える 1

2

fieldvalueはevents_locationsのフィールドだと思います。

class Event
  has_and_belongs_to_many :locations
end

@locations = @event.locations.where(events_locations: {fieldvalue: 1})
于 2012-04-15T08:09:12.027 に答える