如何在 rails 中使搜索框不区分大小写?

How to make search box case-insensitive in rails?

我在 Rails 中有简单的搜索表单,但是当我使用搜索框时,我需要准确输入名称。 例如,当我尝试搜索 "more" 时,它 return 什么都没有,但是当我搜索 "More",然后它 return 是记录,因此它似乎以区分大小写的方式运行。

是否可以让这种区分大小写的方式?

这是我的代码

def self.search(search)
    if search
        star = Star.find_by(who: search)
        if star
            self.where(star_id: star)
        else
            Post.all
        end
    else
        Post.all
    end
end

你可以这样做:

star = Star.where("UPPER(who) = ?", search.upcase).take

star = Star.where("LOWER(who) = ?", search.downcase).take

无论哪种方式,这都会强制执行您的搜索词以及数据库中的 who 值,然后再进行比较,这应该会为您提供所需的结果