2011-06-21 9 views
1

私は少し問題があります!私はhas_and_belongs_to_manyを通して接続されているPlaceモデルとCategoryモデルを持っています。私は、指定された配列(intの配列)内の少なくとも1つのカテゴリに属する​​すべての場所を除外できるようにしたいと考えています。これまでのところ私は次のコードを使用して、単一のカテゴリでフィルタリングすることができました:has_and_belongs_to_many属性によるフィルタリング

@places = Place.find(:all, :include => :categories, :conditions => { "categories_places.category_id" => id}) 

ので、基本的には代わりにIDの私はidをしたいです。私はここにいくつかのレールの専門家がお手伝いできることを願っています!私はこれに非常に新しいです。

答えて

3

これはうまくいくはずです。

some_array_of_ids = [1, 2, 3] 
@places = Place.find(:all, :include => :categories, :conditions => ['categories.id IN (?)', some_array_of_ids) 
+0

感謝を連鎖するためのスコープでそれをしたい場合はあなたの配列迅速な対応のために。私は明日まで解決策を試すことができないが、私はそれがうまくいくはずの疑いがある:)残念ながら私はあまりにも低い担当者のためにまだupvoteできない:( – Cesar

0

試してみてください。

@places = Place.find(:all, :include => :categories, :conditions => ["categories_places.category_id IN ?", int]) 

int - IDS

0

またはあなたがあなたとの@ bor1sへ

some_array_of_ids = [1,2,3] 
@places = Place.includes(:categories).where('categories.id IN (?)', some_array_of_ids) 
関連する問題