Mongoid find_by任何语言的本地化字段

时间:2018-04-24 16:54:43

标签: ruby-on-rails ruby-on-rails-5 mongoid mongoid6

使用Mongoid / MongoDB,如何查找可用语言名称与查询位置匹配的文档?

假设我有一个具有本地化字段和许多翻译的模型

class Foo
   field :name, localize: true
end

Foo.create(name_translations: { 
  'fr' => 'Ingénierie logicielle',
  'en' => 'Computer Software'
})

.find_by(name: )方法似乎只找到I18n.current语言(在我的情况下是法语),如何搜索所有翻译?

我正在尝试Foo.find_by(name_translations: 'Computer Software)的几种变体,但我仍然得到空洞的结果......

1 个答案:

答案 0 :(得分:1)

也许有更优雅的解决方案,但由于name似乎是一个嵌入式文档,因此您需要针对每种语言进行匹配:

term = 'Computer Software'
Foo.or({ :'name.en' => term }, { :'name.fr' => term })