问题描述
我在Rails中有一个简单的搜索表单,但是当我使用搜索框时,我需要准确输入名称。 例如,当我尝试搜索“更多” 时,它不会返回任何内容,但是当我使用“更多” 进行搜索时,它将返回记录,因此看起来它的行为是区分大小写的。
是否可以采用这种区分大小写的方式?
这是我的代码
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
值,这应该会为您提供所需的结果