[英]Ruby on Rails / SQL Query with
我以下型号
class Company < ActiveRecord::Base
attr_accessible :name, address, ........
has_many :employees
end
class Employee < ActiveRecord::Base
attr_accessible :firstname, :lastname, :company_id, .............
belongs_to :company
end
我有一个字符串q,并希望选择所有姓氏或公司名称都像q的雇员,此查询中的内容类似于非工作查询
Employee.where("firstname like ? or lastname like ? or company.name like ?", q,q,q)
用rails实现此目的的最佳方法是什么?
试试这个:
Employee.joins(:company).where("employees.firstname like ? or employees.lastname like ? or companies.name like ?", '%q%', '%q%', '%q%')
正如这个好答案中提到的,解决方法是使用搜索gem而不是SQL。
领先的候选人是Think Sphinx 。
来自同一线程的另一个有用的答案是: https : //stackoverflow.com/a/4037835/690866 ,如果我正确理解的话,他在那里展示了您想要实现的目标。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.