2012-04-14 159 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