我有以下型号:
class Message
include Mongoid::Document
field :tags, :type => Array
scope :contained_tags, distinct(:tags)
end
因为distinct
语法不是模型的方法,而是Criteria
。因此,针对上述模型引发了异常undefined method 'distinct' for Message:Class (NoMethodError)
。
有没有办法实现这个目标?
答案 0 :(得分:1)
你可以这样做:
def self.contained_tags
scoped.distinct(:tags)
end
您甚至可以链接范围;例如:
Message.only_active.contained_tags
注意:如果您使用旧版本的mongoid并且“作用域”不适合您,请使用:criteria.distinct(:tags)