0

私はHABM関係を持つ2つのモデルmerchantcategoryを持っているので参加するテーブルには、私はActiveRecordをして次のクエリを書くことができますどのようにcategories_merchantsモデルを持たないRails 3の結合テーブルを検索するには?

と呼ばれていますか?

SELECT 
    categories_merchants.merchant_id 
WHERE 
    categories_merchants.category_id IN (1,2,3,4) 

注:参加テーブルは、モデルを持っていない、それが1を必要とせずにレール3に自動的に動作します。

答えて

1

このようなクエリを実行する場合は、HABTMをhas_many :troughに変換し、それに基づいて結合テーブルとクエリのモデルを作成する必要があります。

また

が、おそらくより悪いパフォーマンスで、あなたができる:

Merchant 
    .select(:id) 
    .joins("categories_merchants ON categories_merchants.merchant_id = merchant.id") 
    .where("categories_merchants.category_id IN (?)", [1,2,3,4]) 
+0

パフォーマンスが問題ではないので、私は、クエリのこのタイプを使用してみました - しかし、 '' '未定義のメソッド'を得続けますここで '# '' 'エラー – Jacob

+0

のために' .joins'は '.join'ではありません。私は編集しました。 – clyfe

関連する問題