Hello, everyone.
I propose fetched model using find_by
or where
by associated model should cache their associations.
class User < ApplicationRecord
has_one :user_profile
end
class UserProfile < ApplicationRecord
belongs_to :user
end
user = User.first # Run SQL
user_profile = UserProfile.find_by(user: user) # Run SQL
user_profile.user # Run SQL, but I think this SQL should not run.
I think user_profile = UserProfile.find_by(user: user)
should cache user
association and user_profile.user
should not run SQL.
See: `find_by` and `where` should cache association · Issue #50083 · rails/rails · GitHub