Ruby on rails 简单rails搜索表单不工作

Ruby on rails 简单rails搜索表单不工作,ruby-on-rails,Ruby On Rails,我在rails中有一个非常简单、典型的搜索表单。输入一个字符串,如果有任何字符串匹配,它将检查该模型的列。几周前,它工作得还不错。我今天回来,突然不工作了 这是我的密码。我的搜寻表格: <%= form_tag("/search/products", method: "get") do %> <%= label_tag(:q, "Search for:") %> <%= text_field_tag(:q) %> <%= submit_tag

我在rails中有一个非常简单、典型的搜索表单。输入一个字符串,如果有任何字符串匹配,它将检查该模型的列。几周前,它工作得还不错。我今天回来,突然不工作了

这是我的密码。我的搜寻表格:

<%= form_tag("/search/products", method: "get") do %>
  <%= label_tag(:q, "Search for:") %>
  <%= text_field_tag(:q) %>
  <%= submit_tag("Search") %>
<% end %>
在我的模型中,搜索产品方法:

  def self.search_products(search_term)
    if search_term == ""
        return []
    else
        where("name LIKE ?", "%#{search_term}")
    end
  end
在控制器代码中,puts“the term is#{term}每次都打印正确的术语。因此我知道它被正确提取。只是,当我搜索某个内容时,它不会返回正确的结果。这是我终端的屏幕截图:


终端中的“Les résultats sont”表示“结果是…”然后为空,因为它不返回任何内容。这里可能有什么问题?

为什么不降低(?)并搜索\u term.downcase以确保其不区分大小写并搜索_term.downcase以确保其不区分大小写

您的代码当前搜索的
类似于“%term”
(字符串必须以term结尾)

您可能需要让它搜索
,比如“%term%”
(字符串必须包含term)

只需添加一个%:

where("name LIKE ?", "%#{search_term}%")

您的代码当前搜索类似“%term”的
(字符串必须以term结尾)

您可能需要让它搜索
,比如“%term%”
(字符串必须包含term)

只需添加一个%:

where("name LIKE ?", "%#{search_term}%")

您是否确实有以“second”结尾的记录(区分大小写!)如果您想搜索单词的开头并不区分大小写,您应该将查询更改为
where(“name ILIKE?”,“%#{search\u term}%”)
此外,由于这是一个直接从internet检索到的参数,您可能应该使用“哦”来逃避它,这可能就是问题所在。我有以“秒”开头的记录,但没有以“秒”结尾的记录。我将创建一些新记录,看看是否有这些记录。您是否确实有以“秒”结尾的记录(区分大小写!)如果您想搜索单词的开头并且不区分大小写,您应该将查询更改为
where(“name ILIKE?”,“%#{search\u term}%”)
另外,由于这是一个直接从互联网上检索到的参数,您可能应该用“哦”来逃避它,也许这就是问题所在。我有一些以“秒”开头的记录,但不是以“秒”结尾的记录。我将创建一些新记录,看看它是否在后面