做一个LIKE和OR传递参数的最佳方法是什么?
我有一个自动填充字段,用户可以在其中键入邮政编码(编号)或郊区名称(字符串),并且可以在两个不同的列中触发搜索。
我现在正在做以下事情,但它不起作用:
scope :search_by_postcode, lambda { |q| where("postcode LIKE ? OR postcode_name LIKE ?", "%#{q}%", "%#{q}%").limit(10) }
绕过它的方法是什么?
答案 0 :(得分:1)
值得考虑Squeel:
您的范围将如下所示:
scope :first_ten_by_postcode_or_suburb_name, lambda { |q| where{postcode.matches(q) | suburb_name.matches("%#{q}%")}.limit(10) }