Je suis en train de développer une application dédiée à générer des rapports statistiques, je voudrais que cet utilisateur après avoir enregistré leur rapport statistiques, ils sauvegardent les requêtes sql aussi. Pour ce faire, j'ai écrit le module suivant:Comment obtenir des requêtes SQL pour chaque utilisateur où env est la production
module SqlHunter
class ActiveRecord::ConnectionAdapters::AbstractAdapter
@@queries = []
cattr_accessor :queries
def log_info_with_trace(sql, name, runtime)
return unless @logger && @logger.debug?
@@queries << sql
end
alias_method_chain :log_info, :trace
end
end
dans le contrôleur, j'ai écrit que
sqlfile = File.open("public/advancedStats/#{@dir_name}/advancedStatQuery.sql", 'w')
@queries = ActiveRecord::ConnectionAdapters::AbstractAdapter::queries
for query in @queries do
sqlfile.write("#{query} \n")
end
sqlfile.close
J'ai aussi modifié l'environnement Rails en ajoutant cette ligne:
ActiveRecord::Base.logger.level = Logger::DEBUG
Ce programme fonctionne et je peux obtenir toutes les requêtes, mais j'ai seulement besoin des requêtes spécifiques faites par un utilisateur pour générer un rapport statistique.
est quelqu'un a une idée, Merci,
mgatri
Salut Damien, Merci pour votre réponse, maintenant je peux filtrer les requêtes liées à l'action nécessaire, mais le problème que je ne peux pas effacer de vieilles requêtes. Mondher –
Voir mon édition pour supprimer les "anciennes" requêtes. –