Ruby 2.4.0 リファレンスマニュアル Python 3.6 で GET/POST メソッドを想定した CGI 用の簡易テンプレートを作成してみました と同様です。HTML 部分はヒアドキュメント作成し、GET でも POST でも動作します。
require "cgi"
cgi = CGI.new
puts "Content-Type: text/html; charset=utf-8"
puts "Expires: Thu, 19 Nov 1981 08:52:00 GMT"
puts "Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
puts "Pragma: no-cache"
puts
params = cgi.params
fld_names = {"氏名" => "field1", "フリガナ" => "field2"}
fld_names.each { |key, value|
if params[value].empty? then
params[value] = ""
end
}
out_client = <<HTML
<html>
<head>
</head>
<body>
<form>
<p>氏名 : <input type="text" name="#{fld_names["氏名"]}" value="#{params[fld_names["氏名"]][0]}"></p>
<p>フリガナ : <input type="text" name="#{fld_names["フリガナ"]}" value="#{params[fld_names["フリガナ"]][0]}"></p>
<p>送信 : <input type="submit" name="send" value="送信"></p>
</form>
</body>
</html>
HTML
print out_client
Hash#each ※ ドキュメントの参照fld_names = {"氏名" => "field1", "フリガナ" => "field2"} fld_names.each { |key, value| 処理 }ハッシュのキーと値を引数としてブロックを評価します。 Array#empty? ※ ドキュメントの参照require "cgi" cgi = CGI.new params = cgi.params if params[value].empty? then params[value] = "" end同名の値がブラウザより送られて来る事を想定して、params[value] は配列になります。なので、普段は先頭の params[value][0] を使用する事になります。ですから本来ならば、params[value] = [""] ですが、後続の処理的にも結果的にも同じなので、単純に "" をセットしています 式展開 ※ ドキュメントの参照<input type="text" name="#{fld_names["氏名"]}" value="#{params[fld_names["氏名"]][0]}">"(ダブルクォート) で作成されたリテラルの中に #{} の形式で変数や文字列を返すメソッドを埋め込むんで、内容に置き換える事ができます。 AN HTTP Server の設定テストにはまだまだ使える(重宝する) AN HTTP Server の正しい使用方法
|
|
【Ruby 2018の最新記事】
- Ruby(mechanize) で Seesaa のエクスポート
- さくらインターネットに Ruby をインストールして mechanize ( 先に nokogiri のインストールが必要でした )
- Ruby + MySQL + IFRAME + Bootstrap : 問い合せ WEB アプリテンプレート
- Ruby 2.4 で GET/POST メソッドを想定した CGI 用のテンプレート改良版( FORM で MySQL 参照と更新 )
- Ruby のエンコーディング( スクリプト・デフォルト・STDIN・STDOUT )
- Windows10 : Ruby で日本語メール送信
- Eclipse + Ruby : win32ole(COM使用の為) + MySQL Connector/ODBC でループ処理をしながら更新
- Pleiades Eclipse 4.7 Oxygen で Ruby を使って MySQL にアクセスする






