Create a file (something like) config/initializers/active_record_log_subscriber.rb
…and paste this into its contents:
module LogQuerySource def debug(*args, &block) return unless super backtrace = Rails.backtrace_cleaner.clean caller relevant_caller_line = backtrace.detect do |caller_line| !caller_line.include?('/initializers/') end if relevant_caller_line logger.debug(" ↳ #{ relevant_caller_line.sub("#{ Rails.root }/", '') }") end end end ActiveRecord::LogSubscriber.send :prepend, LogQuerySource
Now, whenever a line of code initiates a SQL query the line will be logged. This greatly improves the ease of tracking down inefficiencies such as like N + 1 queries.
If you would like to learn more about exactly how this mix-in works and how the original author went about figuring out how to add it, you can read more about it here.