1. ホーム
  2. ruby

Ruby Activerecord IN 節

2023-10-11 08:28:45

質問

activerecord で "IN" 節を行う方法を知っている人がいたら教えてほしいのです。 残念ながら、"IN"句はほとんどGoogleで検索できないので、ここに投稿する必要があります。 基本的に私はこのような質問に答えたいです "寮のIDがこの配列[id array]にあるこれらの寮にいるすべての大学生を教えてください "。 私は単一の寮のIDを与えられたクエリを記述する方法を知っていますが、私はidの配列を与えられたそれを行う方法を知りません。

どんな助けでも非常に感謝されます。 これはどこかの質問の再投稿だと思うので、答えやより良い検索語が見つかったら削除します。

どのように解決するのですか?

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

を使用してレコードを検索したい場合 IN 式を使ってレコードを見つけたい場合は、条件ハッシュに を条件ハッシュに渡すことができます。

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

このコードでは、次のようなSQLが生成されます。

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

また アレル の構文も使えます。

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

は同じSQLを生成します。