テンプレートエンジンとは?
アプリケーションで生成するHTML画面を直感的にわかりやすいテンプレート形式で記述することができます。
ERB
Railsのデフォルトのテンプレートエンジンです。ERBの詳細は下記の記事でも解説しています。
ただ、Railsを使った開発現場ではERBよりもどちらかといえばHamlやSlimといった別のテンプレートエンジンを採用することが多くなっています。
Haml
Hamlは下記のように記述します。ERBに比べるとツリー上で構造を記述しているので簡潔で読みやすいのです。
1 2 3 4 |
%html %body %h1= @title |
Slim
Slimは下記のように記述します。ERBに比べるとツリー上で構造を記述しているので簡潔で読みやすいのです。
1 2 3 |
html body h1= @title |
Slimを使うには?
下記2つのgemが必要になります。
- slim-rails
- html2slim
slim-rails
Slimのジェネレータを提供するgemです。
html2slim
ERB形式のファイルをslim形式に変換してくれるerb2slimコマンドを提供してくれるgemです。
インストール手順
まずは、Gemfileに下記の記述を追加する。
1 2 |
gem 'slim-rails' gem 'html2slim' |
bundleコマンドを実行する。
1 |
bundle |
bundleコマンドは、Gemfileに書かれたgem及びそれに依存するgemを全てインストールされた状態にしてくれます。サーバの起動中の場合は反映させるには再起動する必要があります。今後作成されるビューのテンプレートファイルは全てERBではなくSlim形式で作成されるようになります。
なお、現時点で作成されてしまっているERBファイルをSlim形式に変換するためには下記のコマンドを実行します。
1 |
bundle exec erb2slim ディレクトリ --delete |
どれを選べば良いの?
基本的にerbが良いです。理由は以下です。
Railsのデフォルトの記述なので学習コストが低い
Railsのデフォルトがerbです。
パフォーマンスも変わらない。
昔はslimやhamlの方が後発なのでパフォーマンスが良いと言われてきましたが、Rails5.1から処理系がerubisからerubiに置き換わってerb自体のパフォーマンスも上がりそこまで違いは無くなりました。
読みやすい。
erbは通常のHTMLに似ているので読みやすいと感じる人が多いです。逆にslimやhamlは簡潔ですが、どこが区切りになっているか分かりづらく可読性が低いです。
特に理由がないのであればerbを選びましょう。
この記事へのコメントはありません。