【发布时间】:2017-09-04 02:53:13
【问题描述】:
当客户端没有被禁止时,会显示一个错误,即: {"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
【问题讨论】:
-
您的代码试图在函数结束后返回哈希值
results。以正确的响应代码/类型返回,它应该可以工作。 -
我真的很困惑
CGI在这里做什么。 Sinatra 应该为您解码这些论点。 -
@kiddorails:啊,确实。
-
@tadman 这是请求负载(用户名=root&password=azerty)
-
@ken 请求负载应该可以被 sinatra 在
params哈希中自动破译。参考-sinatrarb.com/intro.html并搜索“查询参数”