Mongoid find_by любой язык для локализованного поля - PullRequest
0 голосов
/ 24 апреля 2018

Используя 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 Ответ

0 голосов
/ 25 апреля 2018

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

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