未定义的方法`bytesize'对于{" COUNT(*)" => 0}:哈希

时间:2017-09-03 18:36:00

标签: mysql ruby sinatra

当客户端未被禁止时,会显示错误,该错误是: 未定义的方法`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

1 个答案:

答案 0 :(得分:0)

您的代码尝试在函数结束后返回哈希results。返回正确的响应代码/类型,它应该工作。

Ruby中的最后一行/块在任何函数中都会返回。在您的情况下,最后一个块是results.each,它返回results,这不是sinatra的有效响应类型。