Ruby,MySQL2:检查结果是否为空

Ruby,MySQL2:检查结果是否为空,mysql,ruby,mysql2,Mysql,Ruby,Mysql2,我正在Ruby中使用MySQL2查询数据库。检查查询结果是否为空的直接方法是什么? 代码如下所示: require 'mysql2' client = Mysql2::Client.new(:host => "localhost", :username => "root") results = client.query("SELECT * FROM users WHERE group='githubbers'") 如果results为空,则返回true。虽然没有直接的方法(比如Ar

我正在Ruby中使用MySQL2查询数据库。检查查询结果是否为空的直接方法是什么? 代码如下所示:

require 'mysql2'
client = Mysql2::Client.new(:host => "localhost", :username => "root")
results = client.query("SELECT * FROM users WHERE group='githubbers'")

如果
results
为空,则返回
true
。虽然没有直接的方法(比如
Array#empty?
),但是你可以用猴子修补它。

Mysql2文档确实很差。但是通过检查
results
的类型,您会注意到它是一个包含3个方法的类型。您感兴趣的是
count
(或别名
size
),它将返回结果的行数

从这里,您可以轻松检查它是否为
0

(results.count == 0)
或者,您可以打开
Mysql2::Result
类并添加方法
empty?
您自己:

class Mysql2::Result
    def empty?
        (count == 0)
    end
end
然后你可以做:

results.empty?

results.empty有什么问题?
您确定该方法存在吗?我得到以下错误:
未定义的方法“empty”对于#我的坏,我假设结果将是一个数组。mysql2 gem文档表明有一种
count
方法-您尝试过吗?非常感谢:
count
有效!Ruby肯定有
数组#空?
。对不起,这个句子有点模棱两可。我想说的是:
Mysql::Result
没有比
Array#empty?
:-)更好的方法
results.empty?