Class | AWS::Record::HashModel::Scope |
In: |
lib/aws/record/hash_model/scope.rb
|
Parent: | Record::Scope |
The primary interface for finding records with {AWS::Record::HashModel}.
## Getting a Scope Object
You should normally never need to construct a Scope object directly. Scope objects are returned from the AWS::Record::HashModel finder methods # (e.g. `shard` and `limit`).
books = Book.limit(100) books.class #=> AWS::Record::HashModel::Scope
Scopes are also returned from methods defined with the `scope` method.
class Book < AWS::Record::HashModel scope :sampling, limit(10) end Book.sampling #=> returns a scope that limits to 10
## Chaining Scopes
Scope objects represent a request, but do not actualy make a request until required. This allows you to chain requests
# no request made by the following 2 statements books = Book.shard('books-1') # what table to search books = books.limit(10) # how many records to fetch books.each do |book| # yields up to 10 books from the table 'books-1' end
The following methods returns a scope that can be chained.
## Terminating Scopes
To terminate a scope you can enumerate it or call first.
# terminate a scope by enumerating Book.limit(10).each {|book| ... } # terminate a scope by getting the first record Book.shard('books-1').first