Techioz Blog

Webrick によって提供される .rhtml ページの HTML リクエスト パラメーターにアクセスするにはどうすればよいですか?

概要

.rhtml を提供するために webrick (組み込みの Ruby Web サーバー) を使用しています。 ファイル (JSP などの Ruby コードが埋め込まれた HTML)。

正常に動作しますが、.rhtml ファイルの Ruby コード内からパラメータ (例: http://localhost/mypage.rhtml?foo=bar) にアクセスする方法がわかりません。 (私は Rails フレームワークを使用しておらず、webrick + .rhtml ファイルのみを使用していることに注意してください)

解決策

erbhandler のソース コードによると、rhtml ファイルは次のように実行されます。

    Module.new.module_eval{
      meta_vars = servlet_request.meta_vars
      query = servlet_request.query
      erb.result(binding)
    }

したがって、バインディングには、rhtml ファイル内でアクセスできるクエリ (クエリ文字列のハッシュが含まれる) と meta_vars 変数 (SERVER_NAME などの環境のハッシュが含まれる) が含まれている必要があります (また、servlet_request と servlet_response が利用できる場合もあります)。もあるけど、それについてはよくわからない)。

そうでない場合は、CGI パラメータ ENV[“QUERY_STRING”] をクエリして解析することもできますが、これは最後の手段としてのみ使用してください (CGI ファイルでのみ機能する可能性があります)。