操作ログや簡易的なパフォーマンス測定などの目的で、特定アクションで実行されたSQLを監視したいことがあります。 filterやviewで実行された分を含まず、単純に指定ブロックの中を監視するなら、以下のような方法で簡単に実現可能です。 # application_controllerにでも定義しておく def watch_queries events = [] callback = -> name,start,finish,id,payload { events << payload[:sql] } ActiveSupport::Notifications.subscribed(callback, "sql.active_record") do yield end events end 使い方はこんな感じ def update @user = User.find(params[:id])