Hash 配列で表示しよう

アンケートを取る前に、埋められていない項目があった場合に、 埋められていないことを知らせる動作をさせよう。lunch_hash.html を作り、lunch_hash.rb を動かすように変更する。

例えば氏名が無記名であるのを避けたい場合、 氏名が key で自由記述が value であるような Hash 配列を作るのはどうだろう。 key が存在しないときに Hash が生成されないことを利用する。

opinion = Hash.new
  :
if (studentname == nil || studentid == nil || comment == nil)
  print("必要事項が入力されていません")
  exit(1)
else
  opinion[studentname] = comment
end
  :
  printf("<p>%s\n</p>", opinion[studentname])

とすると、無記名のときには表示しない。 また、この副作用として、 記名したものの意見が記名者と関連づけることができる。 みかけはこちら。 動くプログラムのソースはこちら。

CGI スクリプトで取って来たデータを open -- end を使ってファイルに書き込み、 アンケートをまとめるようにするにはどうしたらよいだろうか。