2012-04-16 17 views
49

誰かがactiverecordで "IN"句を実行する方法を知っているのだろうかと思っていました。残念ながら、 "IN"節はかなりgoogleableなので、ここに投稿する必要があります。基本的に私はこのような質問に答えたいと思っています。 "寮IDがこの配列[id配列]にあるこれらの寮にいるすべての大学生を教えてください"。私は単一の寮IDを与えられたクエリを書く方法を知っていますが、私はIDの配列を与えてそれを行う方法を知らない。Ruby Activerecord IN句

ご協力いただきまして誠にありがとうございます。私はこれがどこかの質問の再投稿だと確信していますので、答え/より良い検索語が見つかるとこれを削除します。

答えて

105

§2.3.3 Subset Conditions of the Rails Guidesから:

Client.where(:orders_count => [1,3,5]) 

このコードは次のようにSQLを生成します:

あなたがIN式を使用してレコードを検索したい場合は、条件のハッシュへ 配列を渡すことができます

SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5)) 
+0

これは空の配列に問題があります。 – tokland