그래서 나는이Races에서 Mongoid를 사용하여 유효하지 않은 (0이 아닌) has_one 참조가있는 모든 모델을 어떻게 찾을 수 있습니까?
class ModelParent
include Mongoid::Document
field :name, :type => String
has_one :model_child
end
class ModelChild
include Mongoid::Document
field :name, :type => String
belongs_to :model_parent
end
같은 두 가지 모델이 ModelParent가 레일 콘솔에서 MP라고의 I가 지속 된 인스턴스가있는 가정이
mc = mp.create_model_child(:name=>"child")
다음은 반환
mp.model_child
할 유효한 개체
그러나 내가 그것을 검색하면 이 :
이ModelParent.where(:model_child.ne => nil).length
그렇지 전무를 들어, 내가 model_child을 만드는 시도하고 다음을 할당, 또한 build_model_child()를 사용하여, 각각의 방법은 model_child 부모 명확하게 보여줍니다 그러나 쿼리를 0
을 반환 (.ne)은 자식이있는 모든 ModelParent를 찾지 못합니다.
내가 뭘 잘못하고 있니?
업데이트 :
내 질문에 답하는 중. model_child.ne => nil이 작동하지 않습니다, 그러나 ...
나는 이런 식으로 뭔가를 코딩하여 문제를 해결 : 그것은 외국 키를 작동하지def self.with_child
user_ids = ModelChild.all.only(:model_parent_id).map(&:model_parent_id)
return ModelParent.where(:_id.in => user_ids).all
end
대단히 감사합니다. – KDKotU