{"COUNT(*)"=>0}:Hash 的未定义方法“bytesize”
undefined method `bytesize' for {"COUNT(*)"=>0}:Hash
未禁止客户端时显示错误:
{"COUNT(*)"=>0}:Hash
的未定义方法“bytesize”
我使用 mysql2 库
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
您的代码试图在函数结束后 return 散列 results
。 Return 正确响应 code/type 应该可以。
Ruby 中的最后一个 line/block 在任何函数中 returned。在您的情况下,最后一个块是 results.each
,return 返回 results
,这不是 sinatra 的有效响应类型。
未禁止客户端时显示错误: {"COUNT(*)"=>0}:Hash
的未定义方法“bytesize”我使用 mysql2 库
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
您的代码试图在函数结束后 return 散列 results
。 Return 正确响应 code/type 应该可以。
Ruby 中的最后一个 line/block 在任何函数中 returned。在您的情况下,最后一个块是 results.each
,return 返回 results
,这不是 sinatra 的有效响应类型。