テンプレートエンジンをerbからslimへ移行する

Ruby on Railsのデフォルトのテンプレートエンジンは「ERB(Embedded Ruby)」です。
Railsで使えるテンプレートエンジンは他にもあり、「slim」ではHTMLを簡潔に記述することができ、もちろんRubyの埋め込みもできます。

erbからslimへ移行する手順と、slim記法の基本をまとめます。

導入方法

Gemfileにslim-railsをを加えてbundle install

Gemfile
gem 'slim-rails'

もし既にerbで作成しているファイルがあれば以下も追加すると便利

Gemfile
gem 'html2slim'

このhtml2slimを導入することで erb2slimが使える様になる

$ bundle exec erb2slim [対象ファイル]

でerbをslimに変換してくれる。
※場合によってはうまく変換できないこともあるので注意

slimの書き方

  • タグの<>や閉じタグが不要になる
  • class="CLASS".CLASS, id="ID"#IDと書くことができる。
  • divタグの場合はdivを省略することができる。
*.html.erb
<h1 class="title">Users<h1>

<div class="container">
<a href="#">user</a>
*.html.slim
h1.title User

.container
  a href="#"
    | user
  • erbタグの<% %>-<%= %>は =で書ける
*.html.erb
<ul>
<% @users.each do |user| %>
  <li><%= user.name %></li>
<% end %>
</ul>
*.html.slim
ul
  - @users.each do |user|
    li = user.name

その他公式リファレンスを参照

github.com