Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # assumes class Moviegoer with has_many :favorite_movies, :class_name => 'Movie'
- # in controller method:
- @fan = Moviegoer.find_by_email(email) # causes table scan if no index on email
- # in view:
- - @fan.favorite_movies.each do |movie|
- // BAD: each time thru this loop causes a new database query!
- %p= movie.title
- # better: eager loading of the association in controller
- @fan = Moviegoer.find_by_email(email, :include => :favorite_movies)
- # now we have preloaded all the associated movies
- @movies = @fan.favorite_movies
- # in view:
- - @fan.favorite_movies.each do |movie|
- // GOOD: this code no longer causes additional queries
- %p= movie.title
- # BAD: preload association but don't use it in view:
- %p= @fan.name
- // BAD: we never used the @movies that were preloaded!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement