Ruby on rails rails中不区分大小写的搜索-rails开头的一个示例

Ruby on rails rails中不区分大小写的搜索-rails开头的一个示例,ruby-on-rails,ruby,Ruby On Rails,Ruby,有人能帮我把下面的搜索变成不区分大小写的吗 以下是在事件模块中搜索“标题”字段的代码: # Add each field to the conditions array searchable_fields.each_pair do |field, value| conditions << "#{field} LIKE ?" values << "%#{value}%" end “音乐会”是这次活动的标题 现在,当我进入“音乐会”(小c)时,我无法获得该活动 然而

有人能帮我把下面的搜索变成不区分大小写的吗

以下是在事件模块中搜索“标题”字段的代码:

# Add each field to the conditions array
searchable_fields.each_pair do |field, value|
  conditions << "#{field} LIKE ?"
  values << "%#{value}%"
end
“音乐会”是这次活动的标题

现在,当我进入“音乐会”(小c)时,我无法获得该活动

然而,当我进入“Concert”或“oncert”或“cert”时,我可以得到它

能不能请一些朋友解释一下代码,教我如何使其不区分大小写


谢谢。

我不熟悉您使用的教程,但它看起来是数据库问题,而不是Ruby/Rails问题。问题是数据库是区分大小写的,所以“Concert”匹配是因为它在数据库中,但“Concert”不匹配,因为它与“Concert”不匹配

无论如何,实际的解决方案将取决于您的数据库及其配置方式,但假设它是MySQL,那么您的解决方案将如下所示

searchable_fields.each_pair do |field, value|
  conditions << "#{field} LIKE LOWER(?)"
  values << "%#{value.downcase}%"
end
searchable_字段。每个_对都有字段,值|

是的,你是绝对正确的!非常感谢。事实上,我在中发现有人与我处于类似的情况,有人给出了类似的答案:当前的问题是postgresql需要我执行不区分大小写的查询。执行此操作::conditions=>['LOWER(name)=?'“%#{params[:q].downcase}%]以下是链接:
searchable_fields.each_pair do |field, value|
  conditions << "#{field} LIKE LOWER(?)"
  values << "%#{value.downcase}%"
end