bca*_*man 7 sql activerecord ruby-on-rails where
我正在寻找一个ActiveRecord查询,这就是我在下面的内容.不幸的是你不能像这样使用OR.什么是最好的执行方式? category_ids是一个整数数组.
.where(:"categories.id" => category_ids).or.where(:"category_relationships.category_id" => category_ids)
Run Code Online (Sandbox Code Playgroud)
Pau*_*ess 15
一种方法是恢复原始sql ...
YourModel.where("categories.id IN ? OR category_relationships.category_id IN ?", category_ids, category_ids)
Run Code Online (Sandbox Code Playgroud)
保持SQL不受它影响并使用ARel,如下所示:
.where(Category.arel_table[:id].in(category_ids).
or(CategoryRelationship.arel_table[:category_id].in(category_ids))
Run Code Online (Sandbox Code Playgroud)