繁体   English   中英

Ruby on Rails / SQL查询与

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM