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 ファイルでのみ機能する可能性があります)。