2012-03-19 5 views
2

에 별개의 사용 나는 다음과 같은 모델을 가지고 : distinct 구문은 모델의 방법은 아니지만, CriteriaMongoid - 범위

class Message 
    include Mongoid::Document 

    field :tags,  :type => Array 

    scope :contained_tags, distinct(:tags) 
end 

때문입니다. 그래서 예외 모델 undefined method 'distinct' for Message:Class (NoMethodError)가 발생합니다.

달성 할 수있는 방법이 있습니까?

+0

'all.distinct (: tags)'?? – rubish

답변

1

이 작업을 수행 할 수 있습니다

def self.contained_tags 
    scoped.distinct(:tags) 
end 
  1. 이 범위
  2. 할 수 있습니다 심지어 체인 범위로 정확히 작용; 예를 들면 :

    Message.only_active.contained_tags

는 참고 : 경우에 당신이 이전 mongoid의 버전 및 당신을 위해 작동하지 않습니다 '을 범위를'사용 후 사용 criteria.distinct(:tags)