在数据集中搜索无区分大小写

时间:2010-11-02 12:21:02

标签: ruby-on-rails ruby ruby-on-rails-3

dataset = dataset.where(:headline.like("%" + headline + "%")) if headline.present?

我有一个搜索表单,我可以搜索头条新闻。但标题搜索区分大小写:S。这是数据集中标题和标题的比较。想法不区分大小写:S还有其他一些不区分大小写的东西吗?

2 个答案:

答案 0 :(得分:2)

简单。您可以使用SQL lower函数并使用downcase Ruby String方法:

@posts = Post.where("lower(name) like ?", "%#{search.downcase}%")

这将使您的搜索不敏感,并且适用于许多RDBMS。

答案 1 :(得分:0)

我找到了解决方案。 显然有一种方法ilike,其工作方式与'like'相同,但不区分大小写。 出于一些奇怪的原因,它不是在APIdock,但相信我,它的工作原理。 (http://apidock.com/rails/search?query=ilike