はじめに
Railsでviewを作成する際、デフォルトのテンプレートエンジンとしてERBが利用されています。しかし、SlimやHamlなどはERBよりも簡潔にかけたりパフォーマンスに優れたりといったメリットがあります。
今回は特に評判のよいSlimをERBの代わりにRailsで利用するための手順を説明します。
新規アプリケーションでSlimを利用する場合
Gemfileにslim-rails
を追加します。このgemを利用することでSlimが利用できるようになります。
+ gem 'slim-rails'
bundle install
を実行します。
$ bundle
これで*.html.slim
というファイルがviewのテンプレートエンジンとして認識され、*.html.erb
のように利用することができます。
既に存在するerbファイルをslimに変換したい場合
既にいくつか*.html.erb
というファイルを既に作成していたとします。
この場合はhtml2slim
というgemを利用することで既存のerbファイルをslimファイルに変換することができます。
+ gem html2slim
bundle install
を実行します。
$ bundle
以下のコマンドを実行することでerbファイルがslimファイルに変換されます。
$ bundle exec erb2slim app/views app/views
なお、以下のように-dを付けるとslimファイルに変換した後にerbファイルは削除されます。
$ bundle exec erb2slim app/views app/views -d
(余談)おすすめのSlim学習方法
Slimで書き始めると慣れないうちはERBで書いていたものはどうやって書くんだろうと思うことが何度もあると思います。
そこでおすすめの学習方法としては、scaffoldでRailsアプリを作成し、そこで作成されたerbファイルをslimファイルに変換し、適宜参考にするという方法です。
具体的には以下のような感じです。
まず、サンプルのアプリを作成します。
rails new scaffold-slim
cd scaffold-slim
Gemfileにテンプレートエンジン変換用gemを追加してインストールします。
+ gem 'html2slim'
$ bundle install --path vendor/bundler
適当なモデルをscaffoldで作成します。
$ bundle exec rails scaffold
$ bundle exec rails g scaffold Event title:string body:text
以下のコマンドを実行します。(erbファイルを削除してしまうとslimと比較ができないので-d
オプションをつけていないです。)
$ bundle exec erb2slim app/views app/views
これでerbで書かれていたコードがslimではどのように書かれるのかを適宜参考にできるようになります。