Получение запросов sql из запросов Active-record в Rails 3 - PullRequest
2 голосов
/ 07 февраля 2012

Как отследить, какой запрос SQL сгенерировал мои методы Activerecord (например, find, где).

Ответы [ 4 ]

2 голосов
/ 07 февраля 2012

Вы можете отлаживать запросы ActiveRecord из консоли.

Нажмите rails console и введите:

ActiveRecord::Base.logger = Logger.new(STDOUT)
1 голос
/ 07 февраля 2012

Вы можете вызвать to_sql для объектов отношений (например, возвращаемых при вызове where), чтобы получить SQL для этих запросов.

1 голос
/ 07 февраля 2012

Я предполагаю, что вы используете Rails 3.0.x, вы можете сделать это, настроив вашу активную запись. Поместите это в config/environments/development.rb

# Log ActiveRecord
ActiveRecord::Base.logger = Logger.new(STDOUT) if defined?
Rails::Console

Теперь каждый запрос объясняется в консоли.

0 голосов
/ 21 августа 2012

Если вы хотите сделать это постоянно (всегда показывать запросы в консоли), просто добавьте эти файлы:

~ / .rvmrc

railsrc_path = File.expand_path('~/.railsrc')
if ( ENV['RAILS_ENV'] || defined? Rails ) && File.exist?( railsrc_path )
  begin
    load railsrc_path
  rescue Exception
    warn "Could not load: #{ railsrc_path }" # because of $!.message
  end
end

~ / .railsrc

require 'active_record'

ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.clear_active_connections!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...