instance method
all
Ruby on Rails 6.0.6
Since v4.0.13Signature
all()
Returns an ActiveRecord::Relation scope object.
posts = Post.all posts.size # Fires "select count(*) from posts" and returns the count posts.each {|p| puts p.name } # Fires "select * from posts" and loads post objects fruits = Fruit.all fruits = fruits.where(color: 'red') if options[:red_only] fruits = fruits.limit(10) if limited?
You can define a scope that applies to all finders using default_scope.
Source
# File activerecord/lib/active_record/scoping/named.rb, line 26
def all
scope = current_scope
if scope
if scope._deprecated_scope_source
ActiveSupport::Deprecation.warn(<<~MSG.squish)
Class level methods will no longer inherit scoping from `#{scope._deprecated_scope_source}`
in Rails 6.1. To continue using the scoped relation, pass it into the block directly.
To instead access the full set of models, as Rails 6.1 will, use `#{name}.default_scoped`.
MSG
end
if self == scope.klass
scope.clone
else
relation.merge!(scope)
end
else
default_scoped
end
end
Defined in activerecord/lib/active_record/scoping/named.rb line 26
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Scoping::Named::ClassMethods