在rails上搜索ruby(将搜索字符串更改为小写)

时间:2015-09-06 13:10:26

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个简单的搜索功能,但是当我搜索名称时,我需要输入与其显示完全相同的名称,包括大写和小写。例如,如果我搜索'ruby'并且名称是'Ruby',它将不会显示结果

查看源代码:

<div class="row center">
    <%= form_tag pages_home_path, :method => 'get' do %>
    <%= text_field_tag :search, params[:search], :placeholder => "Search", :style => "text-align: center; font-size: 20px" %>
    <button type="submit_tag" name="action" class="waves-effect waves-light btn">Search Tutorials</button>
<%end%>

控制器源代码:

def index
@tutorials = Tutorial.search(params[:search])
end

模型源代码:

def self.search(search)
if search
  where(["name LIKE ?","%#{search}%"])
else
  all
end

我怎么能这样做,以便当用户输入要搜索的名称时,它会显示结果,即使它是大写还是小写?

2 个答案:

答案 0 :(得分:3)

这个怎么样?

where(["LOWER(name) LIKE ?","%#{search.downcase}%"])

答案 1 :(得分:2)

使用ILIKE代替LIKE。它会使like查询不区分大小写。