プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Ruby on Rails
  • 【Ruby on Rails】テンプレートエンジンの種類(ERB,Haml,Slim)
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Ruby on Rails】テンプレートエンジンの種類(ERB,Haml,Slim)

11.27

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

テンプレートエンジンとは?

アプリケーションで生成するHTML画面を直感的にわかりやすいテンプレート形式で記述することができます。

ERB

Railsのデフォルトのテンプレートエンジンです。ERBの詳細は下記の記事でも解説しています。

【Ruby on 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を選びましょう。

スポンサーリンク
  • 2019 11.27
  • miyabisan2
  • コメントを書く
  • Ruby on Rails
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2019 11.23

    【Ruby on Rails】アプリケーションサーバ「Puma」、「Unicorn」について

  2. 2020 11.22

    【Ruby on Rails】「確認画面」の実装

  3. 2019 12.08

    【Ruby on Rails】モデルを共通化する。

  4. 2020 11.16

    【Ruby on Rails】「cocoon」について

  5. 2018 06.23

    【Ruby on Rails】「Scaffolding(スキャフォールディング)」生成されたソースコード、jbuilder

  6. 2021 01.09

    【Ruby on Rails】「bullet」、「N+1問題」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Ruby on Rails】バリデーション処理、メッ…

【Ruby on Rails】RailsにBootst…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー