June 2, 2008

Ruby入門:ERBによるHTML内でのRuby実行


rupauk's scrapbook ~ programming notes by striatic



 前回の続きで、RubyによるWeb API開発環境を整える準備です。

 HTMLにRubyを組み込む場合、通常では /usr/local/bin/ruby インタプリタを呼び出して、Rubyのコードを読ませて、結果的にHTMLを出力するでしょう。
 その場合の大きな問題点があって、HTMLのコードをひとつひとつprint文の連続になってしまうことです。HTMLのタグをいちいちprintしまくるなんて、汚すぎて見れたものじゃないです。

 PHPのようにHTMLで <?php ・・・ ?> とくくって、HTMLの中にコードを組み込む形にしないと、ほんとしんどい。

 ソリューションとしては、eRubyかERBを使用するということです。私の使っているサーバはeRubyが利用可能な状態ではなさそうなので、ERBに頼ることにしました。
 手順としては以下の通り。


  1. rubyのパスを確認する
  2. erb.cgiを用意する。
    ここからerb-cgi.txtをダウンロードしてerb.cgiとしましょう。chmod +x erb.cgi などとすることを忘れずに。

  3. .htaccessで、特定の拡張子(rhtmlなど)は、用意したerb.cgiに読ませるようにする。環境によって適宜読み替えてください。

    AddHandler rubypage .rhtml

    Action rubypage /cgi-bin/erb.cgi

  4. ERBで読ませるサンプルコードを書きましょう。

    <html>

    <body>

    Hello <%= "Ruby" %> World!

    </body>

    </html>


  5. 作成したrhtmlファイルなどにアクセスしてみましょう。


 これで、ERBによってうまくHTMLにRubyを埋め込むことが出来ますね。

参考:http://earth.cubic-sight.net/2007/10/erbkml_12.html
参考:http://kahori.com/ruby/earrings/