2017-02-03 6 views
0

私はそれで持っているモデルMODEL1を持っている:"has_and_belongs_to_many"のモデル - idのリストでクエリを実行する方法は?

has_and_belongs_to_many :child_items 

は、それが自分のIDリストでchild_itemsを照会することは可能ですか?ような何か:

model1.child_items.where(id: [1, 2, 3]) 

はい、私はこれを行うことができます:

ChildItem.where(id: [1, 2, 3]) 

を私が参加して、ちょうどchild_items必要はありませんが、本当に属しているものがありますのでModel1を経由して、それが良いだろうModel1に、可能であれば[1,2,3]の間には他のIDも含まれます。

どうすればいいですか?

+0

ねえ、モンゴイドかアクティブレコード? –

答えて

-1

私の代わりにこのアプローチを使用します。

model1_instance.child_items.where(child_items: { id: [1, 2, 3] }) 

レールのハッシュキーは、あなたが上で照会する任意のパラメータを追加すると、あなたがテーブル名を渡すことができます。

+1

アソシエーションではなく、*テーブル名*。また、おそらく 'child_items'の呼び出しを見逃してしまいました。モデルインスタンスには' where'がありません。 [参照してください。](http://stackoverflow.com/questions/27106853/rails-pgundefinedtable-error-missing-from-clause-entry-for-table/27107299#27107299) –

+0

私はモデル1がモデルのインスタンスそれはモデル自体ではなく、小文字であったからです。 child_itemsの欠落した呼び出しは有効ですが、これはモデルの予想される型を返しませんでした。私の悪い、私は私の答えを更新しました。 – RichardAE

+0

ハッシュキーが関連している(またはむしろ**ではありません)という混乱する部分がまだあります。 –

1
model1.child_items.where('child_items.id IN (?)', [1, 2, 3]) 
関連する問題