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

Mel*_*lon 5 activerecord ruby-on-rails ruby-on-rails-2

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

ActiveRecord::Base.connection.execute("select count(*) from cars;")
Run Code Online (Sandbox Code Playgroud)

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

我试过了 :

rslt = ActiveRecord::Base.connection.execute("select count(*) from cars;")
p rslt
Run Code Online (Sandbox Code Playgroud)

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

Iur*_* G. 11

有几种方法可以从查询中获取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}
Run Code Online (Sandbox Code Playgroud)


yuя*_*uяi 7

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

result = connection.execute(sql)
result.to_a
Run Code Online (Sandbox Code Playgroud)

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