Mongoid find_by любой язык для локализованного поля

Используя Mongoid / MongoDB, как мне найти документ, имя которого на любом доступном языке совпадает с моим запросом where?

Предположим, у меня есть модель с локализованным полем и много переводов

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 ответ

Может быть, есть более элегантное решение, но так как кажется, что name является внедренным документом, вам нужно сопоставить его с каждым языком:

term = 'Computer Software'
Foo.or({ :'name.en' => term }, { :'name.fr' => term })
Другие вопросы по тегам