AFAIK, es gibt keine einfache Möglichkeit, auf die Liste der Abfragen zuzugreifen. Nichtsdestotrotz können Sie leicht Zugang zu ihnen bekommen, indem Sie einen super einfachen Logger erstellen.
Wenn Sie die Klasse ActiveRecord::ConnectionAdapters::AbstractAdapter
öffnen, sehen Sie eine Methode namens log. Diese Methode wird bei jeder Abfrage aufgerufen, um die Anweisung zu protokollieren. Standardmäßig protokolliert es alle Anweisungen mit dem Rails-Logger.
Sie können etwas wie
tun %Vor%Jetzt können Sie die Abfrage mit
erhalten %Vor% Wahrscheinlich, weil ich eine neuere Version von ActiveRecord habe, als wenn diese Frage gestellt wurde, aber um ActiveRecord 3.2.3 zu verwenden, habe ich das Skript von Simone Carletti aktualisiert: Ich habe das zusätzliche Attribut binds
hinzugefügt und den Aufruf verschoben bis alias_method_chain
unterhalb der Methodendefinition, da es sonst zu einem Fehler führen würde, der besagt, dass die Methode nicht gefunden werden kann.
Die letzte Abfrage ist immer noch die gleiche:
%Vor%Ihr Entwicklungsprotokoll sollte alle SQL-Abfragen enthalten, die ausgeführt werden.
Tags und Links ruby ruby-on-rails activerecord