In Rails, what’s the difference between find_each and where?

An active record relation does not automatically load all records into memory.

When you call #each, all records will be loaded into memory. When you call #find_each, records will be loaded into memory in batches of the given batch size.

So when your query returns a number of records that would be too much memory for the server’s available resources, then using #find_each would be a great choice.

It’s basically like using ruby’s lazy enumeration #to_enum#lazy with #each_slice and then #each (very convenient).

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)