5

Sinatra を使用すると、特定の受信フォーム フィールドに名前で簡単にアクセスできます。

post "/" do
  params['form_field_name']
end

しかし、リクエスト内のすべてのフォーム フィールドを列挙するにはどうすればよいでしょうか。ドキュメントには何も見つかりませんでした。私も試してみました

request.body.split('&') 

ただし、request.body は StringIO のインスタンスであり、文字列ではありません。

4

3 に答える 3

10

paramsがハッシュの場合は、次を試すことができます。

params.keys.each do |k|
   puts "#{k} - #{params[k]}"
end
于 2009-10-30T21:38:55.400 に答える
7

Sinatra の優れた API ドキュメントで、Sinatra::Request が Rack::Request のサブクラスであることを発見しました。Sinatra ハンドラが継承するリクエスト オブジェクトには、送信されたフォーム フィールドのハッシュを返す POST メソッドがあります。

request.POST.each { |k,v| puts "#{k} = #{v}" }
于 2009-10-30T21:42:53.187 に答える
0

それは単なるハッシュです:Pなので、他のハッシュと同じように繰り返すだけです

于 2009-10-30T21:40:01.327 に答える