78

アクティブレコードで「IN」句を実行する方法を誰かが知っているかどうか疑問に思っていました。残念ながら、「IN」句はほとんどグーグルで検索できないので、ここに投稿する必要があります。基本的には、「寮IDがこの配列[id配列]にあるこれらの寮にいるすべての大学生を教えてください」というような質問に答えたいと思います。単一の寮 ID を指定してクエリを作成する方法は知っていますが、ID の配列を指定してクエリを実行する方法がわかりません。

どんな助けでも大歓迎です。これはどこかの質問の再投稿だと確信しているので、回答/より良い検索用語が見つかったらこれを削除します.

4

1 に答える 1

153

§3.3.3からレールガイドのサブセット条件:

式を使用してレコードを検索する場合INは、条件ハッシュに配列を渡すことができます。

Customer.where(orders_count: [1,3,5])

このコードは、次のようなSQLを生成します。

SELECT * FROM customers WHERE
(customers.orders_count IN (1,3,5))

arel構文を使用することもできます。

Client.where(Client.arel_table[:order_count].in([1,3,5]))

同じSQLを生成します。

于 2012-04-16T21:22:34.667 に答える