ruby - Best way to get records from another model again and again - Rails -
i have model booking
contains space_id
attributes associated space
model belongs_to :space
.
now have multiple spaces , want count each booking respect every id.
i want best way fatch records db without fire query again , again. currently, i'm doing this:
spaces = space.all result = [] spaces.each |s| result << s.as_json.merge(:bookings_counts=>s.bookings.count) end
but firing query again , again form db. there best way this?
this called "n+1 queries" problem. in rails can use eager loading resolve it. use includes
load records in single query changing first line of code to
spaces = space.eager_load(:bookings)
here explanation , comparison of ways (includes
, eager_load
, preload
) eager loading in rails link.
Comments
Post a Comment