我有一个简单的搜索功能,但是当我搜索名称时,我需要输入与其显示完全相同的名称,包括大写和小写。例如,如果我搜索'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
我怎么能这样做,以便当用户输入要搜索的名称时,它会显示结果,即使它是大写还是小写?
答案 0 :(得分:3)
这个怎么样?
where(["LOWER(name) LIKE ?","%#{search.downcase}%"])
答案 1 :(得分:2)
使用ILIKE
代替LIKE
。它会使like
查询不区分大小写。