Sha256: 388e0f574124071c07a1379e1221d94755e0cda8a6daff20088dd3465f7a615a

Contents?: true

Size: 1.2 KB

Versions: 77

Compression:

Stored size: 1.2 KB

Contents

module ActiveFedora
  module Scoping
    module Default
      extend ActiveSupport::Concern

      module ClassMethods
        # Returns a scope for the model without the +default_scope+.
        #
        #   class Post < ActiveRecord::Base
        #     def self.default_scope
        #       where published: true
        #     end
        #   end
        #
        #   Post.all          # Fires "SELECT * FROM posts WHERE published = true"
        #   Post.unscoped.all # Fires "SELECT * FROM posts"
        #
        # This method also accepts a block. All queries inside the block will
        # not use the +default_scope+:
        #
        #   Post.unscoped {
        #     Post.limit(10) # Fires "SELECT * FROM posts LIMIT 10"
        #   }
        #
        # It is recommended that you use the block form of unscoped because
        # chaining unscoped with +scope+ does not work. Assuming that
        # +published+ is a +scope+, the following two statements
        # are equal: the +default_scope+ is applied on both.
        #
        #   Post.unscoped.published
        #   Post.published
        def unscoped
          block_given? ? relation.scoping { yield } : relation
        end
      end
    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
active-fedora-9.0.8 lib/active_fedora/scoping/default.rb
active-fedora-8.7.0 lib/active_fedora/scoping/default.rb
active-fedora-8.6.0 lib/active_fedora/scoping/default.rb
active-fedora-8.5.0 lib/active_fedora/scoping/default.rb
active-fedora-8.4.2 lib/active_fedora/scoping/default.rb
active-fedora-8.4.1 lib/active_fedora/scoping/default.rb
active-fedora-7.3.1 lib/active_fedora/scoping/default.rb
active-fedora-7.3.0 lib/active_fedora/scoping/default.rb
active-fedora-8.4.0 lib/active_fedora/scoping/default.rb
active-fedora-8.3.0 lib/active_fedora/scoping/default.rb
active-fedora-8.2.2 lib/active_fedora/scoping/default.rb
active-fedora-9.7.3 lib/active_fedora/scoping/default.rb
active-fedora-8.2.1 lib/active_fedora/scoping/default.rb
active-fedora-8.2.0 lib/active_fedora/scoping/default.rb
active-fedora-7.2.0 lib/active_fedora/scoping/default.rb
active-fedora-9.7.2 lib/active_fedora/scoping/default.rb
active-fedora-9.9.1 lib/active_fedora/scoping/default.rb
active-fedora-9.9.0 lib/active_fedora/scoping/default.rb
active-fedora-9.8.2 lib/active_fedora/scoping/default.rb
active-fedora-9.8.1 lib/active_fedora/scoping/default.rb