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 スクリプトを編集するのも面倒な気もする。難しいところか。