概要
近いうちにRuby開発でSlimを使うため、今回はSlimについて学びます。
Ruby on Railsに導入した後、簡単にSlimの書き方を説明します。
Slimとは
slimとは Ruby製の高速かつ軽量なテンプレートエンジンであり、下記のような特徴が挙げられます。
- ・シンプルな構文
- ・HTMLをタグではなく階層構造(インデント)で表す
- ・とじタグを書かない
- ・他のテンプレートエンジンに比べて高速・軽量に動作する
Slimを導入する
それでは前回scaffoldを用いて作成したアプリケーションにSlimを導入していきます。
まずはGemfileに下記を記述します。
gem 'slim-rails'
group :development do
(省略)
gem 'html2slim'
end
slim-railsはrails g controllerやscaffoldを実行した際にslimも自動生成する。
記述したら次のコマンドを実行します。
$ bundle install
うまく実行できたら、下記のコマンドを実行して既存のerbをslimに変換します。
bundle exec erb2slim app/views app/views -d
viewフォルダの.erbファイルが.slimに変わったら成功です。
Slimの書き方
index.html.slimを例にSlimの書き方を確認していきましょう。
p#notice
= notice
h1
| Users
table
thead
tr
th
| Name
th
| Address
th
| Age
th[colspan="3"]
tbody
- @users.each do |user|
tr
td
= user.name
td
= user.address
td
= user.age
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
slimは閉じタグを書かない代わりにインデントを使ってマークアップ箇所を指定します。また、テキストを記述する際は | で定義します。
th
| Name
th
| Address
th
| Age
Rubyのコードを記述する際は – で定義します。(<% %>)と同義)
- @users.each do |user|
Rubyのコードを出力する際は = で定義します。(<%= %>)と同義)
td
= link_to 'Show', user
idやクラスを指定する際は#や.を使用します。
p#notice
まとめ
Slimは閉じタグや<>が無いなどHTMLとは書き方が違いますが、文字のタイプ量が減り、コードが見やすくなるなどのメリットもあります。
慣れるまで少し時間がかかりそうですが頑張って覚えようと思います。
コメント