2010-11-02 44 views
1
dataset = dataset.where(:headline.like("%" + headline + "%")) if headline.present? 

我有一个搜索表单,可以搜索标题。但标题搜索区分大小写:S。这是数据集中标题和标题的比较。像是不区分大小写的思想:S是否其他不区分大小写的东西?在数据集中搜索没有区分大小写

+0

如果我只能将searchphrase和匹配符都转换为downcase,那么问题就解决了吗? 我试着通过设置(:headline.downcase).like和headline.downcase来做到这一点。但是这不起作用,因为你不能在符号上调用'like'。任何想法如何解决这个问题? – 2010-11-02 13:00:50

回答

0

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

2

简单。您可以使用SQL较低的功能和使用downcase Ruby的字符串方法:

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

这将使你的搜索不区分大小写,并与许多RDBMS工作。