データベースに CGI 変数をしまうには

CGI 変数をデータベースにしまう部分を作成しよう。 transaction method は、PStore 変数内で実行するときに用いる method である。

# PStore 変数.transaction do
   ####   データベースを取り扱う処理   ####
# end

PStore 変数 db に transaction method を組み合わせ、 データを一気にしまう(取り出す)。

CGI 変数 "studentname", "comment" を Hash の対として作り、それは opinion という名前で代入していた。 項目が欠けていたら CGI 変数を保存しないよう、分岐文を設定する。

この opinion という Hash 対をまるごと保存することを考える。 保存するとき、lunch.db にデータをしまうように設定してある。 初回に動かすときには PStore 変数 db が Hash 配列となるよう設定する。 このデータベースを作ったあとは、 以前のデータを Hash 配列にしまい、 CGI 変数が代入された Hash を付加していく。

# データベースに保存するときの方法
db.transaction do
  if db["opinion"] == nil
    db["opinion"] = Hash.new      # PStore 配列の key "opinion" にしまうデータは
                                  # Hash 形式でしまっていく
  end
  opinion = db["opinion"]         # 今までの PStore 配列を opinion 
                                  # にしまっておく
  opinion[studentname] = comment  # studentname を key comment を value で
                                  # しまう
end