私はActiveRecordクエリを書きたいと思っています.これは私が以下に持っているものです. 残念ながら、このように OR を使用することはできません。実行する最良の方法は何ですか? category_ids
整数の配列です。
.where(:"categories.id" => category_ids).or.where(:"category_relationships.category_id" => category_ids)
私はActiveRecordクエリを書きたいと思っています.これは私が以下に持っているものです. 残念ながら、このように OR を使用することはできません。実行する最良の方法は何ですか? category_ids
整数の配列です。
.where(:"categories.id" => category_ids).or.where(:"category_relationships.category_id" => category_ids)
1つの方法は、生のSQLに戻すことです...
YourModel.where("categories.id IN ? OR category_relationships.category_id IN ?", category_ids, category_ids)
SQL を除外して、次のように ARel を使用します。
.where(Category.arel_table[:id].in(category_ids).
or(CategoryRelationship.arel_table[:category_id].in(category_ids))
やりたいことは、次のようにクエリの OR 部分を手動で記述することです。
.where("category.id in (#{category_ids.join(',')}) OR category_relationships.category_id in (#{category_ids.join(',')})")