Rails .where(.... and ....) Searching for two values of the same attribute

activerecord, ruby-on-rails, sql

Solution

In the general case "OR" queries can be written as:

User.where("users.name = ? OR users.name = ?", request.requester, request.regional_sales_mgr)

Note: Rails 5 will support `OR` using:

User.where(name: request.requester).or(User.where(name: request.regional_sales_mgr))

For this specific case as state in other answers an IN query is simpler:

User.where(name: [request.requester, request.regional_sales_mgr])

Problem

I've tried ``` @users = User.where(name: @request.requester or @request.regional_sales_mgr) ``` and ``` @users = User.where(name: @request.requester).where(name: @request.regional_sales_mgr).all ``` This doesn't seem to work. What I want is to find the user whose name matches @request.requester, and the user whose name matches @request.regional_sales_mgr, and save them both into the variable @users.

Original source