У меня есть Rails 4.2, Mongoid 4 проекта с этими моделями:Mongoid Поиск по Массива Ассоциации идентификаторам
class Customer #aka Company
include Mongoid::Document
has_many :branches
end
class Branch
include Mongoid::Document
field :name, type: String, default: ""
belongs_to :customer
end
Я хочу найти всех клиентов (ака компаний), которые имеют ветвь с именем «Нью-Йорк ». Я бы подумал, что этот код будет работать:
branches = Branch.where(name: "New York").map(&:_id)
=> [BSON::ObjectId('54f76cef6272790316390100')]
Customer.where(:branch_ids => branches).entries
Однако он всегда возвращает пустой массив, независимо от того, что я пытаюсь. Вместо branch_ids
, я также пробовал branches
, branch
, branches_id
и другие, но безрезультатно. Я также пытался конвертировать BSON::ObjectID
в обычный string
, но это тоже не работает.
Итак, в принципе, как я могу найти модель на основе массива идентификаторов ассоциации? Благодарю.
Что он возвращает: 'Customer.elem_match (ветки: {name:" New York "})' –
И это - 'Customer.where (: branches.elem_match => {name:" New York "})' –
@SharvyAhmed Оба возвращают пустой массив (после вызова '.entries') –