Sha256: 96b170045cc8dcb1d957a411af8aeaa79f294e46adf9616c1c7cb10f229e897e

Contents?: true

Size: 1 KB

Versions: 1

Compression:

Stored size: 1 KB

Contents

# encoding: utf-8
module Mongoid #:nodoc:

  # This module handles functionality for creating default scopes.
  module DefaultScope
    extend ActiveSupport::Concern

    included do
      class_attribute :default_scoping
    end

    module ClassMethods #:nodoc:

      # Creates a default_scope for the +Document+, similar to ActiveRecord's
      # default_scope. +DefaultScopes+ are proxied +Criteria+ objects that are
      # applied by default to all queries for the class.
      #
      # @example Create a default scope.
      #
      #   class Person
      #     include Mongoid::Document
      #     field :active, :type => Boolean
      #     field :count, :type => Integer
      #
      #     default_scope :where => { :active => true }
      #   end
      #
      # @param [ Hash ] conditions The conditions to create with.
      #
      # @since 2.0.0.rc.1
      def default_scope(conditions = {}, &block)
        self.default_scoping = Scope.new(conditions, &block).conditions.scoped
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid-2.0.0.rc.8 lib/mongoid/default_scope.rb