当客户端未被禁止时,会显示错误,该错误是: 未定义的方法`bytesize'对于{" COUNT(*)" => 0}:哈希
我使用mysql2 lib
post '/mario/login' do
credentials = CGI.parse request.body.read
if !credentials.has_key?('username') || !credentials.has_key?('password')
status 603
return "MISSING_FIELD"
end
results = bans.execute request.ip
results.each do |row|
if row['COUNT(*)'] > 0
status 603
return "BANNED"
end
puts "ok"
end
end
答案 0 :(得分:0)
您的代码尝试在函数结束后返回哈希results
。返回正确的响应代码/类型,它应该工作。
Ruby中的最后一行/块在任何函数中都会返回。在您的情况下,最后一个块是results.each
,它返回results
,这不是sinatra的有效响应类型。