我的搜索区分大小写

16 浏览
0 Comments

我的搜索区分大小写

我对Rails还比较新,正在使用这个搜索表单\n

  <%= form_tag producer_path(@user), method: :get do %>
      <%= text_field_tag :search, params[:search] %>
      <%= submit_tag "搜索", name: nil %>
  <% end %>

\n在模型中使用了一个SQL LIKE语句\n

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

\n我本以为这个默认是不区分大小写的,但事实并非如此。我正在使用PostgreSQL 9.1。这是我需要为数据库配置的内容吗?如果是的话,应该在哪里配置?\n顺便说一下,我在URL中看到了以下参数,包括一个UTF8哈希值,其中有一个不可打印的字符(在浏览器地址栏中,这里在HTML中显示为一个勾号),我不知道它是从哪里来的。这个UTF8编码可能是问题的来源吗?\n

?utf8=✓&search=

0
0 Comments

问题出现的原因是搜索时对大小写敏感。解决方法是使用meta-search gem进行搜索,该gem具有高级功能。

0
0 Comments

搜索功能中出现了"My search is case sensitive"的问题。这个问题的原因是在搜索条件中使用了"iLIKE",而"iLIKE"是PostgreSQL的扩展,它可以使匹配不区分大小写。然而,在这个情况下,搜索是区分大小写的。

为了解决这个问题,我最终使用了"LOWER(name) LIKE LOWER(?)"作为搜索条件。这个条件使用了"LOWER"函数将搜索字段和搜索词都转换为小写,这样就可以实现不区分大小写的匹配。通过这种修改,我成功解决了"My search is case sensitive"的问题。

0