Ruby on Railsでデフォルトのテンプレートエンジンである「ERB」からを「SLIM」に変更する方法を紹介します。
また、すでにERBで書かれてるファイルをSLIMに変換する方法も合わせて紹介します。
gemをインストールして、簡単な設定をするだけなので、ぜひ参考にしてください。
Ruby on RailsのテンプレートエンジンをSLIMにする方法
Ruby on Railsでは、デフォルトのテンプレートエンジンはERBになっています。
SLIMで読み込まれるように変更するためには、gemをインストールするだけで変えることができます。
「SLIM-rails」のgemをインストールする
ERBからSLIMにするためにgemをインストールします。
アプリのGemfileに下のコードを書き込みます。
gem 'slim-rails'
変更を保存した後に、ターミナルでインストールします。
$ bundle install
たったこれだけで、拡張子がSLIMのものを読み込んでくれるようになります。
また、このgemをインストールした後は$ rails g
のコマンドを実行するたびに、viewテンプレートはERBではなく、SLIMで作成されるようになります。
ERBのコードをSLIMのコードに変換する方法
上の設定で、SLIMのファイルが読み込まれるようになったのですが、すでにERBで書いているファイルがあると不具合が起こります。
それは、同じファイルがある場合です。
同じ名前のファイルがERBとSLIMである場合は、ERBが読み込まれてしまいます。
そのため、ERBのファイルをERBに変換し、ERBのファイルは全て削除するようにしましょう。
「html2slim」というgemをインストールする
html2SLIMというgemを利用します。
Gemfileに以下のように書き込みます。
gem 'html2slim'
変更を保存し、ターミナルでインストールします。
$ bundle install
html2SLIMを使って変換する
インストールした後に簡単な設定をする必要があります。
フォルダごとERBからSLIMに変換する
$ bundle exec ERB2slim app/views/
上記のコードをターミナルに打ち込んで実行すると、app/views/ディレクトリ以下の全てのERBのファイルがSLIMに書き換わります。
フォルダごとERBからSLIMに変換し、ERBファイルを削除する
SLIMに書き換えても、上のコマンドだとERBのファイルが残っています。
ERBを削除するためには、 -dオプションを追加すればOKです。
こうすることにより、ERBからSLIMに変換された後、もともとあったERBのファイルは削除されます。
$ bundle exec ERB2slim app/views/ app/views/ -d
まとめ:gemを使ってERBからSLIMに簡単に変換できる
Ruby on Railsで、ERBからSLIMファイルが読み込まれる方法、そして、ERBからSLIMに変換する方法を解説しました。
gemを使えば簡単に変更できるので試してみてください。
最後になりますが、エディターでSlim用の言語ファイルを入れておけば、見やすくなります。
Atomは「language-slim」、VSCodeは「Slim」というパッケージをインストールしてください。
>>Ruby on Railsの学習方法のまとめはこちら