46
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

railsにslimを導入し、erbファイルをslimファイルに一括変更する方法

Last updated at Posted at 2015-11-16

前提

viewをよりスッキリ描く方法として、slimを導入するサイトが増えてきています。これから導入したくても、すでにerbファイルが多くて、導入できないよ。。という方に向けて、簡単に導入する方法をまとめてみました。

slimとは

  • 拡張子が.slim
  • インデントが非常に重要
  • インデントでHTMLファイル内の構造を構築し、必要最小限のコードで書くことができる
  • 既存のerbファイルと比べてスピードが速い

slimとerbのコードの違い

index.html.erb
<h1>テスト一覧</h1>
<% @tests.each do |test| %>
  <%= test.name %>
  <%= test.content %>
  <%= link_to 'Edit', edit_test_path(test.id) %>
  <%= link_to 'Destroy', test_path(test.id), method: :delete, data: { confirm: 'Are you sure??' } %>
<% end %>
index.html.slim
h1 テスト一覧
- @tests.each do |test|
  = test.name
  = test.content
  = link_to 'Edit', edit_test_path(test.id)
  = link_to 'Destroy', test_path(test.id), method: :delete, data: { confirm: 'Are you sure??' }

slimコードの特徴

  • < >や<% %> などのカッコはすべてとりはらわれます。
  • <%= %>は、slimだと=で代用できます。
  • if文やeach文などの先頭には、-を使用します。また、endは必要ありません。

railsにslimを導入する方法

Gemfile内に以下のコードを追加し、bundle install をしてください。

gem 'slim-rails'

これで、railsプログラム内で、slimファイルを作成し、使用することが可能になります。

既存のerbファイルをまとめてslimファイルに変える方法

以下のgemをGemfileに追加し、bundle installしてください。

gem 'html2slim'

これで、erbファイルをslimファイルにする準備が整いました。
このあと、以下のコードをコマンドラインで打つことで、erbファイルをslimファイルに変え、ファイルの中身もslimのコードに書き換えてくれます。

for i in app/views/**/*.erb; do erb2slim $i ${i%erb}slim && rm $i; done

注意点

  • app/views/**/*.erbこの部分を変えたいファイルの場所に変え、使用してください。
  • ディレクトリ以下を一括変更をした場合、そのディレクトリ以下のすべてのファイルが変更加えられるので、一応githubで管理しつつ行いましょう。
46
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
34

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?