slimを使ってみよう
RailsではデフォルトのテンプレートエンジンはERBですが、他にもslim
やhaml
があります。
今回はslim
の記法について見て行きます。
テンプレートエンジンとは
HTML画面を直感的にわかりやすいテンプレート形式で記述することができます。
必要gemの導入
slimでhtmlを書くためのgemをインストールします。
・slim-rails
hoge.html.slimのようにビューファイルの拡張子にslimが使えるようになります。
・html2slim
既存のerbファイルをslim形式に変換してくれます。
Gemfileに
gem 'slim-rails' gem 'html2slim'
として
bundle install
これでgemがインストールできました。
サーバーは再起動しておきます。
erbをslimに変換
変換するためにターミナルでコマンドを入力します。
bundle exec erb2slim app/views
で元のerbファイルを残したまま変換されたhoge.html.slimファイルが作成されます。
元のerbを削除するには
bundle exec erb2slim app/views -d
とします。
slimの特徴
slimの特徴として
・<>、閉じタグがいらない
・<%= %> は =
・<% %> は -
・class指定 は .
・id指定 は #
・テキストは | の後に
・コメントアウトは /
が挙げられると思います。
scaffoldアプリを作ったのでどんな感じになっているか見てみましょう。
p#notice = notice h1 | Users table thead tr th | Name th | Email th[colspan="3"] tbody - @users.each do |user| tr td = user.name td = user.email td = link_to 'Show', user td = link_to 'Edit', edit_user_path(user) td = link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } br = link_to 'New User', new_user_path
まだ慣れていないので変な感じはしますが、コード量が減ってすっきりしていますね。
同名のerbファイルが残っているとerbの方が反映されるのでslimに移行するときはerbファイルは削除する必要があります。
最後に
慣れが必要ですが、覚えてしまえばerbより書くのも読むのも早くなりそうですね。
ただ、あえてslimからerbに戻した、という記事も見つけたので現場によってはデフォルトのerbのまま、ということもありそうです。
では今回は以上です。ありがとうございました。
参考サイト
【Ruby on Rails】テンプレートエンジンの種類(ERB,Haml,Slim) | プログラミングマガジン
【爆速で習得】Railsでslimを使う方法から基本文法まで - Qiita
【Rails】 slimの書き方をマスターしよう! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト