第2回 Ruby on Rails 〜Slimの導入〜

Ruby

概要

近いうちに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とは書き方が違いますが、文字のタイプ量が減り、コードが見やすくなるなどのメリットもあります。
慣れるまで少し時間がかかりそうですが頑張って覚えようと思います。

コメント

タイトルとURLをコピーしました