2005-04-23
[開発ログ]WEB インターフェース作成中
こんな感じの erb スクリプト。 ロジックは core コマンドになっているのでそれを使うコードになる。
<html lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=EUC-JP"> <meta http-equiv="Content-script-type" content="text/javascript"> <title>ログイン</title> </head> <body> <% name = @cgi.params['name'].first pass = @cgi.params['pass'].first sid = nil error = nil if name begin require 'command/login.rb' raise Core_Error unless (com = Login.new(nil, name, pass)).result sid = com.result rescue Core_Error error = $!.inspect end end %> <h1>ログイン</h1> <% if sid %> <p><%= h(name) %> : ログインしました。</p> <p>sid : <%= h(sid) %></p> <% else %> <% if error %> <p>Error : <%= h(error) %></p> <% end %> <form action="<%= h(@action_script) %>" method="post" class="login_form"> <input type="hidden" name="tmpl" value="<%= h(@tmpl) %>" /> user name : <input type="text" size="10" name="name" value="<%= h(name) %>"/> password : <input type="pass" size="10" name="pass" value="<%= h(pass) %>"/> <input type="submit" value="login" /> </form> <% end %> <p><a href="<%= h(@action_script) %>?tmpl=useradd">ユーザー登録画面</a></p> </body> </html>
前はテンプレートとプログラムを別ファイルに分けていたのだが、面倒なのでひとつにまとめた。これくらいならデザイナも理解してくれる。規模によっては切り分けが必要か。
でも、これをデザイナに渡すと複雑な HTML になって返ってくるわけで、その中の Ruby スクリプトを編集するのも面倒な気もする。難しいところか。