Ruby/Rubyの基礎知識

Slimテンプレートエンジンを使ってHTMLを出力する

HTMLテンプレートエンジンであるSlimを紹介します。ERBやHamlとの機能や文法を比較し、RailsアプリにSlimテンプレートを使用する方法を解説します。

橋本 拓也

執筆者:橋本 拓也

Rubyガイド

SlimとERB

SlimはHTMLテンプレートエンジンの一つです。テンプレートエンジンとは、テンプレートファイルにデータを当て込んで、動的にドキュメントを出力する仕組みです。

本記事のテーマはSlimですが、まずテンプレートエンジンの先輩格である「ERB」について説明させてください。

Ruby界隈では、長らくERBというテンプレートエンジンが使われてきました。今でもRubyビルトインライブラリに含まれています。

ERBは<% %>あるいは<%= %> というタグの中にRubyコードを埋め込むことでドキュメントを動的にレンダリングします。以前の記事RailsでTwitterクローンを作る(2) -- 画面レイアウトを整えるで作成したRailsのViewから抽出した、以下の例を見てもらったほうがわかりやすいでしょう。投稿一覧(@posts)をtableの中に1行1行表示していく部分です。

ちなみに、<% %>にはif文やeachなどHTMLに出力されない制御構造を書き、<%= %>で評価したRuby式はHTMLに出力されます。Rails等のWebアプリケーションで使った場合は、上のERBファイルにサーバ上でデータ(上の例で言うと@postsインスタンス変数)が当て込まれ、生成されたHTMLがユーザのブラウザに送信されることになります。

見て分かる通り、ERBの利点は「ほぼ普通のHTMLであり、学習コストが低い」ことです。

そして、これをSlimで書くと以下のように表現されます。

ずいぶんとスッキリとして、同時に「タテに長く」なったと感じるのではないでしょうか。具体的に変わった点を挙げてみると、

  • タグから<>がなくなっている
  • 閉じタグがない代わりに、Pythonのようにインデントで構造を表現している
  • <% %>の代わりに-<%= %>の代わりに=でRuby式を書いている

といったところです。ERBと違って最初に文法を覚える必要はありますが、閉じタグやclass="..."といった冗長な表現が排除されて"スリム"に書けるのがメリットです。

ちなみにHamlというテンプレートエンジンもSlimと同じくインデントで構造を表しますが、SlimはHamlよりも高速に描画されるのが利点です。

それでは、次のページでSlimの文法を紹介していきます。

  • 1
  • 2
  • 3
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます