Each and Fetch

Collection inherits from Enumerable(T) therefore it allows all the methods defined by the module. When calling enumeration via each or mapor any other methods defined in Enumerable(T), the collection is resolved and SQL request is triggered.


Return the list of models returned by the request:

Post.query.where(user_id: 1).each do |posts|
    # Do something with the posts


Fetch stands for iterating through hash instead of model. While offering less features (as we do not connect a model to the data), it offers best performances, as no extra-allocations are made:

Post.query.where(user_id: 1).fetch do |posts|
    puts "#{post["id"]} - #{post["name"]}"

Last updated