Middle
What is eager loading in the context of Ruby on Rails?
sobes.tech AI
Answer from AI
Eager loading in Ruby on Rails is a technique for preloading associated records from the database along with the main objects to avoid the N+1 query problem.
The N+1 problem occurs when, for each object in a collection, a separate query is executed to load related data, leading to a large number of queries and decreased performance.
Eager loading allows loading all necessary related data with one or several optimized queries.
Example of using eager loading with ActiveRecord:
# Without eager loading (N+1 problem)
posts = Post.all
posts.each do |post|
puts post.comments.count
end
# With eager loading
posts = Post.includes(:comments).all
posts.each do |post|
puts post.comments.count
end
In this example, includes(:comments) instructs Rails to load all comments for all posts with a single additional query, significantly reducing the number of database queries and improving performance.