【发布时间】:2010-11-14 07:55:08
【问题描述】:
您如何有效地在模型中的多个字段中进行搜索?
# user.rb model
def self.search(search, page)
paginate :per_page => 20, :page => page,
:conditions =>
['name like ? OR notes like ? OR code like ? OR city like ? OR state like ?,
"%#{search}%","%#{search}%","%#{search}%","%#{search}%","%#{search}%"
], :order => 'name'
这段代码对于几个字段来说都是可怕的,并且如果例如单词#1来自:name而单词#2来自:code,它不会返回结果。有没有更优雅的方式?
【问题讨论】:
-
你知道吗,好电话。我会把它们拆散。
-
搜索没有找到与多个单词匹配的原因是因为它正在所有列中查找整个字符串“word1 word2”,但只找到部分匹配项,因此请务必分开首先是搜索词。
标签: ruby-on-rails ruby-on-rails-3 will-paginate searchlogic