消したい場合には、key を指定して、データベースから取り除くことができる。
データベース 変数.delete(key)
例えば、管理者権限で削除するような bbs_admin.rb を作る。 発言の番号は時間の配列要素番号から -1 したものに等しいことを利用する。
入力する部分を取り除き、表示部分だけを残したページを作る。
:
myprog = "bbs_admin.rb"
:
db.transaction do
print("<ol>\n")
for time in db.roots.sort
if db[time][0] != nil
printf("<li>%s さん: %s</li>\n", db[time][0], db[time][1].chomp)
end
end
print("</ol>\n")
:
次に、削除させる入力部分を作る。
printf("<form method=\"POST\" action=\"./%s\" \n", myprog)
print("<p>削除番号: <input name=\"delno\" maxlength=\"10\"></p>\n")
print("<input type=\"submit\" value=\"送信\">\n")
print("<input type=\"reset\" value=\"リセット\">\n")
print("<\p>\n")
print("</form>\n")
cgi["delno"] に入った番号を整数値とし、時間の配列の該当要素を探す。
no = cgi["delno"].to_i
db.transaction do
t = db.roots.sort[no-1] # 入力された時間の配列は第ゼロ要素から開始
db.delete(t)
end