一直在挖掘几个小时。但是使用MySQL在rails活动记录中编写此查询的最佳和最短的方法是什么。
select * from users where (username like '%leonardo%' or email like
'%leonardo%' or name like '%leonardo%') and department = 'X'
所有的喜欢都在一个很大的范围内,应该与一个' X'部门。谢谢你们。
答案 0 :(得分:0)
您可以在用户模型中询问每个属性:
User.where('users.username LIKE "%leonardo%" OR users.email LIKE "%leonardo%" OR users.name LIKE "%leonardo%" AND users.department_id = 1')
如果您只传递一个值来比较用户名,电子邮件和姓名:
User.where(
'users.username LIKE :q OR
users.email LIKE :q OR
users.name LIKE :q AND
users.department_id = :dept',
q: '%leonardo%', dept: 1
)
否则你可以通过逐个传递它们来绑定它们。