Mongoid - использование различных по объему - PullRequest
2 голосов
/ 19 марта 2012

У меня есть следующая модель:

class Message
  include Mongoid::Document

  field :tags,        :type => Array

  scope :contained_tags, distinct(:tags)
end

Поскольку синтаксис distinct является не методом Модели, а Criteria.Таким образом, исключение undefined method 'distinct' for Message:Class (NoMethodError) поднимается для модели выше.

Есть ли способ достичь этого?

1 Ответ

1 голос
/ 02 сентября 2012

Вы можете сделать это:

def self.contained_tags
  scoped.distinct(:tags)
end
  1. Действует точно как область действия
  2. Вы можете даже цеплять области действия;например:

    Message.only_active.contained_tags

ПРИМЕЧАНИЕ: если вы используете более старую версию mongoid и ' scoped ' не делаетработать на вас, затем используйте: criteria.distinct(:tags)

...