CGI / Ruby - 将字符串转换为整数

时间:2015-09-17 01:38:41

标签: ruby cgi

下面是我的test.cgi文件。来自html的参数是:

{"FirstNum"=>["3"], "SecondNum"=>["3"]}

为什么a.class不显示为整数?我需要对值进行数学运算,表单将它们作为整数发送。即使Ruby .to_i也不起作用。

#!/RailsInstaller/Ruby2.1.0/bin/ruby

require 'cgi'

cgi = CGI.new
puts "Content-type: text/html\n\n"

arr = cgi.params

a = arr['FirstNum']

a.each do |a|
  puts a.class
end

1 个答案:

答案 0 :(得分:0)

来自fine manual

  

方法params()以名称/值列表对的形式返回请求中所有参数的哈希值,其中value-list是一个包含一个或多个值的Array。 CGI对象本身也表现为值的参数名称哈希,但只返回每个参数名称的单个值(作为字符串)。

所以当你说:

arr = cgi.params

你在arr得到一个Hash,其键是CGI参数名,其值是字符串数组; arr在这里是一个坏名字,因为它是一个哈希,而不是一个数组。这意味着:

a = arr['FirstNum']

为您提供a中的字符串数组。如果您只需要一个值,请使用[]上的cgi方法获取字符串,然后使用String#to_i获取数字:

a = cgi['FirstNum'].to_i