我的活动记录SearchSuggestion
有一个title:text
字段,用于在单个hash
中存储不同语言的值,如下所示:
#<SearchSuggestion :id 1, link: "/search/shoes", title: {"en"=>"Women's shoes", "ko"=>"여성 신발", "ru"=>"Женская Обувь", "fr"=>"Chaussures De Femme"}>
我正在以下列方式获取与给定输入匹配的记录:所有记录'title
字段中包含的所有给定单词,仅从每个单词的开头按以下方式开始:
query = params[:q].split(" ").map{|s| s.prepend('(?:.*\m')}.map{|s| s.concat(')')}.join('')
SearchSuggestion.where("title ~* ?", query).limit(10).pluck(:title)
问题是这给了我整个领域的匹配,而我只想要当前所选语言的匹配。因此,如果我的语言使用相同的字母 - 我会得到无关的结果,例如 - 如果我开始输入“cha”,这将通过查找法国建议作为匹配来返回“女鞋”。此外,如果我输入“en” - 我会得到所有现有记录,因为它们与“en”语言的键匹配。
有什么方法可以指定我只想在其中搜索的哈希键吗?