2010年1月23日土曜日

rubyでロジックとビューの分離

どうも、俺@rubyはじめました、です。
Web系の仕事してて、これだけ「ruby」という単語を目にすることが多く「Ruby on railsを真似たフレームワークが・・」と耳にするのでちょっとカジっとかないと、という訳ではじめましたruby。
個人的に「phpとperlとjavaしか知りません」だと対外的に格好つかないかなと思ったわけです。


で、まだまだ勉強し始めなのですが、
WEBアプリを作る際にruby(RoRではない)でロジックとビューを分ける方法について。
例えばphpでは、
// ロジック側(logic.php)
<?php
$a = "foo";
$b = "bar";

require "view.tpl.php";
とロジックを書いておけば、ビューでは
// ビュー側(view.tpl.php)
<html>
<body>
$aの値はです。
$bの値はです。
とできます。

同じようなことをrubyでやるには、
1)ヒアドキュメントを使う
// ロジック側(logic.rb)
a = "foo"
b = "bar"

print "Content-type:text/html\n\n"

print <<__HTML_END__
"<html>
<body>
$aの値は" + a + "です。
$bの値は" + b + "です。"
__HTML_END__

2)ERBを使う
// ロジック側(logic.rb)
require "erb"

print "Content-type:text/html\n\n"

a = "foo"
b = "bar"
tplFile = "view.tpl.html"
erb = ERB.new(File.read(tplFile))
erb.run
としてビュー側で
// ビュー側(view.tpl.html)
<html>
<body>
aの値は<%=a%>です。
bの値は<%=b%>です。
とやります。

というか、もっとスマートな方法あれば教えてください!
もっと勉強します。。

以上っっっっです。

0 件のコメント: