我在这里关注ryan的简单搜索表单教程:
http://railscasts.com/episodes/37-simple-search-form
我的用户模型中有以下行:
find(:all, :conditions => ['fname LIKE ?', "%#{search}%"])
但我想要做的是搜索组合2列,:fname和lname
当用户搜索我的全名时:
例如詹姆斯布朗
fname =詹姆斯
lname =布朗
有没有办法在Rails中安全地执行此操作,这将适用于SQL,MySQL或Postgres(heroku使用)等数据库?
谢谢!
它可能不漂亮,但我在我的Person模型中使用它:
scope :by_full_name lambda {|q|
where("first_name LIKE ? or last_name LIKE ? or concat(last_name, ', ', first_name) LIKE ?", "%#{q}%", "%#{q}%" , "%#{q}%")
}
看到我的一个 其他帖子 为了一点额外,将使搜索查询是可选的。
它可能不漂亮,但我在我的Person模型中使用它:
scope :by_full_name lambda {|q|
where("first_name LIKE ? or last_name LIKE ? or concat(last_name, ', ', first_name) LIKE ?", "%#{q}%", "%#{q}%" , "%#{q}%")
}
看到我的一个 其他帖子 为了一点额外,将使搜索查询是可选的。
这最终工作得非常好......虽然不确定性能。索引可以帮忙吗?
:conditions => ['fname || lname LIKE?',“%#{search}%”]