【发布时间】:2012-01-25 18:15:22
【问题描述】:
我正在使用 ruby 生成 CGI(不在 Rails 上)。
我想解析本地运行的脚本的参数(使用 localhost:3000/apage.cgi?key=value 之类的请求),就像我为命令行参数解析 ARGV[0] 一样。
当我尝试:params = CGI.parse(request.query_string) 时,我得到“未定义的局部变量或方法请求”。
编辑:这是代码。这就是为什么我没有把它放在首位:)
#!/usr/bin/env ruby
require 'cgi'
print "Content-type: text/plain\n\n"
#print CGI.parse(URI.parse(request.fullpath).query)
【问题讨论】:
-
你能给出完整的代码吗?乍一看,您使用的是
request方法或变量,这在您的代码中没有定义。 -
准确地说,需要哪个模块才能访问它? (或者干脆用纯 ruby 获取当前的基本 url?)此时,我只是想输出发送到我当前脚本的参数。
-
CGI 接口假定您将从标准输入(en.wikipedia.org/wiki/Common_Gateway_Interface)读取请求。此外,CGI 服务器设置环境变量,这可能很有用(如 REQUEST_URI)。为了从 STDIN 中读取数据,使用 get 方法。要访问环境变量,请使用 ENV['variable']。
-
非常感谢,看来 print ENV['QUERY_STRING'] 是我要找的。span>