Przechwytywanie zapytań sql

Witam,

Jest jakiś sposób na przechwytywanie wszystkich zapytań jakie lecą do bazy podczas jednego requesta? Wiem, że railsy wypluwają je na konsole ale mi chodzi o przechwyceniu ich w aplikacji.

Pozdrawiam

Cześć,

pewnie da się to zrobić nadpisując coś związanego z logowaniem w ActiveRecord, ale co konkretnie, to nie wiem. :wink:

Tu jest przykład czegoś podobnego w railsach 2.3 http://stackoverflow.com/questions/1090801/how-do-i-get-the-last-sql-query-performed-by-activerecord-in-ruby-on-rails

Konkretnie, musisz się wpiąć w odpowiednie powiadomienia. Rails > 3 używa Notification API (http://railscasts.com/episodes/249-notifications-in-rails-3 które jest przesłodkie. Musisz się dowiedzieć w jakie notyfikacje chcesz się wpiąć. Przykładowo, sam logger doładnie to w sposób: https://github.com/rails/rails/blob/master/activesupport/lib/active_support/log_subscriber.rb

Ok, dzięki za nakierowanie. Jak będę miał jeszcze jakieś problemy to się odezwę :slight_smile: