如何访问 Sinatra 中的所有表单字段?
Sinatra 可以轻松地通过名称访问任何特定的传入表单字段:
post "/" do
params['form_field_name']
end
但是如何枚举请求中的所有表单字段呢?我在文档中没有找到任何内容。我什至尝试过,
request.body.split('&')
但 request.body 是 StringIO 的实例,而不是字符串。
Sinatra makes it easy to access any particular incoming form field by name:
post "/" do
params['form_field_name']
end
But how does one enumerate over all the form fields in a request? I found nothing in the documentation. I even tried
request.body.split('&')
but request.body is an instance of StringIO, and not a string.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果 params 是哈希,您可以尝试:
If
params
is a hash, you can try:它只是一个散列:P,所以只需像使用任何散列一样迭代它
its just a hash :P so just iterate it like you would with any hash
我刚刚在 Sinatra 优秀的 API 文档中发现 Sinatra::Request 是 Rack::Request 的子类。 Sinatra 处理程序继承的可用请求对象有一个 POST 方法,该方法返回已提交表单字段的哈希值。
I just discovered in Sinatra's excellent API docs that Sinatra::Request is a subclass of Rack::Request. The request object available to Sinatra handlers inherits has a POST method which returns a hash of submitted form fields.