Post

ActiveRecordが発行するSQLをHookしたい

解決

config/initializers/active_model_query_debug.rb

module ActiveModelQueryDebug def log(query, *args) # 'Model Load' are targeted if args.first&.end_with?("Load") Rails.logger.debug("query: #{query}") end super end end ActiveRecord::ConnectionAdapters::AbstractAdapter.prepend(ActiveModelQueryDebug)

動作

[1] pry(main)> User.first query: SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1 User Load (1.3ms) SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1

参考

active_record-sql_analyzer/sql_analyzer.rb at master · square/active_record-sql_analyzer

This post is licensed under CC BY 4.0 by the author.