Ruby on rails 如何在rails控制台中查看MySQL查询
有没有办法在rails控制台中查看从ActiveRecord触发哪些MySQL查询?是的,这可以通过将rails日志重定向到标准输出来实现 在控制台提示中写入以下内容:Ruby on rails 如何在rails控制台中查看MySQL查询,ruby-on-rails,ruby,Ruby On Rails,Ruby,有没有办法在rails控制台中查看从ActiveRecord触发哪些MySQL查询?是的,这可以通过将rails日志重定向到标准输出来实现 在控制台提示中写入以下内容: ActiveRecord::Base.logger = Logger.new(STDOUT) ActiveRecord::Base.connection_pool.clear_reloadable_connections! 此外,您可以将这些行放在~/.irbrc文件中,这样每次都不需要手动写入这两行: require 'ru
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.connection_pool.clear_reloadable_connections!
此外,您可以将这些行放在~/.irbrc文件中,这样每次都不需要手动写入这两行:
require 'rubygems'
if ENV.include?('RAILS_ENV') && ENV["RAILS_ENV"] == 'development'
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Base.connection_pool.clear_reloadable_connections!
end
希望这有助于……每个项目的另一种方法是: 您可以在environment.rb或任何环境文件中指定替代记录器:
ActiveRecord::Base.logger = Logger.new("log/active_record.log") #This outputs the mysql queries to a file named active_record.log under your project's log folder.
当然,您需要重新启动服务器才能正常工作。在Rails 3+中,您可以使用ActiveRecord::Relation的方法:
我刚刚尝试将它添加到一个旧Rails 2.3项目的
.irbrc
文件中。当我运行脚本/控制台时,表示尚未加载ActiveRecord。我需要先做一些加载破解吗?只需在下面添加require'active_record'
即可require'rubygems'
只需第一个ActiveRecord::Base.logger=logger.new(STDOUT)
就可以了。
User.where(:id => 3).to_sql
#=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = 3"