2012-04-14 82 views
1

嗨我有嵌入的文档,但我无法通过ID查询它们。我可以输出所有检查,并有正确的ID,但查询它们是不可能的。 我有一个课程模式其中embeds_many:course_members并用embedded_in一个CourseMember型号:当然,:inverse_of =>:course_membersMongoid嵌入式查询

我尝试这样做没有任何成功:

puts Course.where("course_members.id" => params[:id]) 

有了这个代码我可以到达rigth文件:

c = Course.where("course_members.accepted" => 2).all 
c.each do |l| 
l.course_members.each do |f| 
    puts f.inspect 
end 
end 

但我怎么能得到我的数据与一个Mongoid查询?

回答

6

我猜

puts Course.where("course_members._id" => BSON::ObjectId(params[:id])) 

MongoDB中真正的id为_id,在mongoid功能.id仅仅是一个方便的包装。

编辑:您还必须将字符串params[:id]转换为正确的BSON ID。

+0

Course.where(“course_members._id”=> BSON :: ObjectId.from_string(params [:id])) – user934801 2012-04-14 17:47:12