【发布时间】:2015-03-11 15:55:41
【问题描述】:
我有一个带有这些模型的 Rails 4.2、Mongoid 4 项目:
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,但这也不起作用。
那么,基本上,我如何根据关联 ID 数组搜索模型?谢谢。
【问题讨论】:
-
返回什么:
Customer.elem_match(branches: { name: "New York" }) -
还有这个 -
Customer.where(:branches.elem_match => { name: "New York" }) -
@SharvyAhmed 都返回一个空数组(在调用
.entries之后) -
你可以试试不带 .entries,最后试试 .to_a 让我们知道输出
-
返回所有客户吗?
标签: ruby-on-rails mongoid mongoid4