2012-04-15 7 views
0

私はレールに新しく、接続オブジェクトに設定されたフィールドに基づいて場所を見つけるより効率的な方法があるかどうかを確認しようとしています。関係はevents_locationsを通じて多くのロケーションを持つイベントです。簡略化された例を次に示します。接合オブジェクトフィールドに基づいてレコードを見つけるより良い方法はありますか?

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

これは無駄で多くのクエリを生成する可能性があります。より良い方法がありますか?

答えて

2

私はフィールド値の推測では、その後、events_locationsの分野で

class Event 
    has_and_belongs_to_many :locations 
end 

@locations = @event.locations.where(events_locations: {fieldvalue: 1}) 
+0

あなたの仮定が正しかった、ありがとう!このようなスニペットを見つけることができる良いサイトをお勧めしますか? – turbo2oh

+0

Railsガイドを読んだことがありますか? http://guides.rubyonrails.org/association_basics.html – Yanhao

関連する問題