2012-02-07 410 views

回答

2

您可以從控制檯調試ActiveRecord查詢。

命中rails console並輸入:

ActiveRecord::Base.logger = Logger.new(STDOUT) 
1

我假設你正在使用Rails 3.0.x的,你可以做到這一點通過配置您的活動記錄。把它放在config/environments/development.rb

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

現在,每個查詢都在控制檯中進行了解釋。

1

您可以調用to_sql關聯對象(例如,當您調用where時返回的對象)以獲取這些查詢的SQL。

0

如果你想永久做到這一點(總是顯示控制檯查詢)只需添加這些文件:

〜/ .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!