I am seeing the above issue in rails simple activerecord query
where(email:email).first_or_create!
find_or_create_by!(phone_number: phone_number)
Both these queries are not part of any other query meaning not included in any join/includes query. But for an independent query why this issue is coming?
Just because an operation is called multiple times with various inputs can not be called as N+1 query issue.
def email_address(email)
email = email.downcase
begin
where(email:email).first_or_create!
rescue ActiveRecord::RecordNotUnique
find_by_email(email)
end
end
Assume that the method was called [arry_of_emails].map {|x| email_address(x)}

The warning was correct! If you have 27 items in your array it will call DB 27 times!
How we can solve it? I have the next suggestion: