Ruby on Rails - includes in ruby on rails- ruby on rails tutorial - rails guides - rails tutorial - ruby rails
Includes
- ActiveRecord with includes ensures that all of the specified associations are loaded using the minimum possible number of queries.
- So when querying a table for data with an associated table, both tables are loaded into memory.
@authors = Author.includes(:books).where(books: { bestseller: true } )
# this will print results without additional db hitting
@authors.each do |author|
author.books.each do |book|
puts book.title
end
end
Clicking "Copy Code" button will copy the code into the clipboard - memory. Please paste(Ctrl+V) it in your destination. The code will get pasted. Happy coding from Wikitechy - ruby on rails tutorial - rails guides - ruby rails - rubyonrails - learn ruby on rails - team
- Author.joins(:books).where(books: { bestseller: true } )will load only authors with conditions into memory without loading books.
- Use joins when additional information about nested associations isn't required.
@authors = Author.joins(:books).where(books: { bestseller: true } )
# this will print results without additional queries
@authors.each { |author| puts author.name }
# this will print results with additional db queries
@authors.each do |author|
author.books.each do |book|
puts book.title
end
end