2012-04-14 3 views
1

안녕하세요 저는 문서를 임베드했지만 ID로 쿼리 할 수 ​​없습니다. 검사를 통해 모두 출력 할 수 있으며 올바른 ID가 있지만 쿼리 할 수 ​​없습니다. course_members와 embedded_in와 CourseMember 모델 : 이 나는 ​​과정 embeds_many 모델이 과정을, : => inverse_of :몽고이드 내장 쿼리

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

이 코드와 내가 도달 할 수 있습니다 : course_members

내가 어떤 성공없이 시도 rigth 문서 :

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

그러나 몽고이드 쿼리로 내 데이터를 얻을 수 있습니까?

답변

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

관련 문제