first_or_initialize
calls first
, which is compatible with includes
(since it checks for loaded?
.
By contrast, find_or_initialize_by
calls find_by
which always runs a query.
I agree. I think this a bug, I’ll have a go at a fix.
The original strict loading scope just covered things you can cover with includes
, preload
, etc. That’s probably why this isn’t included.