我最近开始在ruby中使用kirbybase,但是在使用带结果集的if语句时遇到了问题。这是一个似乎有此问题的简化代码:
require 'kirbybase'
db = KirbyBase.new
if db.table_exists?(:database)
db.drop_table(:database)
end
list = db.create_table(:database, :name, :String, :password, :String, :test, :String)
name = 'Test'
password = 'abcde'
list.insert(name, password, nil)
account = list.select { |r| r.name == name}
if account.test.nil?
puts 'right'
else
puts 'wrong'
end
为什么输出“错误”?
答案 0 :(得分:0)
回答我自己的问题似乎很奇怪,但是我解决了这个问题:account.test是一个数组,因此if语句的正确形式是:
if account.test[0].nil?
puts 'right'
else
puts 'wrong'
end