Sinatra可以通过名称轻松访问任何特定的传入表单字段:
post "/" do
params['form_field_name']
end
但是如何枚举所有请求中的表单字段?我在文档中找不到任何内容。我甚至试过
request.body.split('&')
但是request.body是StringIO的一个实例,而不是字符串。
答案 0 :(得分:9)
如果params
是哈希值,您可以尝试:
params.keys.each do |k|
puts "#{k} - #{params[k]}"
end
答案 1 :(得分:7)
我刚刚在Sinatra的优秀API文档中发现Sinatra :: Request是Rack :: Request的子类。 Sinatra处理程序继承可用的请求对象有一个POST方法,它返回提交的表单字段的哈希值。
request.POST.each { |k,v| puts "#{k} = #{v}" }
答案 2 :(得分:0)
它只是一个哈希:P所以只需像使用任何哈希
那样迭代它