如何在服务器控制台上显示sql结果

Rails v2.3Ruby 1.8中 ,如果我在我的模型类中运行带有以下代码的sql语句

ActiveRecord::Base.connection.execute("select count(*) from cars;") 

如何在服务器控制台中显示查询结果?

我试过了 :

 rslt = ActiveRecord::Base.connection.execute("select count(*) from cars;") p rslt 

但它只返回服务器控制台上的“MySQL结果对象”,而不是确切的结果。

有几种方法可以从查询中获取mysql“answer”。 你可以调用每一行,它将迭代每一行(只有一行 – 在你的情况下计数)。 看一下mysql gem docs ,看看其他可用的方法,比如each_hash和all_hashes。

 rslt = ActiveRecord::Base.connection.execute("select count(*) from cars;") rslt.each {|mysql_result| puts mysql_result} 

你可以在结果上使用to_a方法,如下所示:

 result = connection.execute(sql) result.to_a 

这将返回(并在控制台中显示)您要查找的内容。

这取决于您当前使用的环境。 对于开发,默认记录器级别是debug ,用于生产它的信息级别。 你可以这样使用它:

 class HomeController < ActionController::Base def index rslt = ActiveRecord::Base.connection.execute("select count(*) from cars;") logger.info "#{rslt}" end end 

您可以在Mike Naberezny的博客上阅读有关rails登录的更多信息: http ://mikenaberezny.com/2007/02/24/rails-logging-tips/