2
2

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.

erbをhamlに変えよう

Last updated at Posted at 2019-10-26

ryoです。AP午後の自己採点が58点、部分点次第で合格ワンチャンなせいで気持ち悪い2ヶ月になりそうです。
昨日は新しくアプリケーションを立ち上げるセットを覚えました。
通っているスクールではhtmlはhamlを使って記述しています。
しかし、昨日scaffoldで出来上がったビューファイルはerbです。
そこで今日は、erbからhamlに自動変換をするコマンドを使います。

この記事で出来る様になること

ビューファイルをerbからhamlに変換する。

目次

  1. コマンドと記述一覧
  2. 各コマンドと記述の説明
  3. よく聞くエラーとか

コマンドと記述一覧

gemをインストールするため、Gemfileに下記を記述します。

Gemfile
gem 'haml-rails'
gem 'erb2haml'

ターミナルコマンドは下記だけです。

ターミナル
bundle install
rake haml:replace_erbs

これだけです。手抜きな感じです。

各コマンドと記述の解説

Gemfileです。
haml-railsがhamlを使える様にするGemです。
erb2hamlが変換できる様にするGemです。

*erb2hamlは、haml-railsに備わっているため、不要であるとの話も聞いたことあります。
俺は実際に確かめていないです。
むしろ誰か試してみて、結果がわかったら教えてください。

Gemfile
gem 'haml-rails'
gem 'erb2haml' 

上記二つをインストールします。

ターミナル
bundle install

これが、ergを全てhamlに変換するコマンドです。

ターミナル
rake haml:replace_erbs

出力結果は下記のようになります。

出力
Converting: app/views/users/registrations/edit.html.erb... Done!
Removing: app/views/users/registrations/edit.html.erb... Removed!
Converting: app/views/users/registrations/new.html.erb... Done!
Removing: app/views/users/registrations/new.html.erb... Removed!
Converting: app/views/users/sessions/new.html.erb... Done!
Removing: app/views/users/sessions/new.html.erb... Removed!
Converting: app/views/users/shared/_error_messages.html.erb... Done!
Removing: app/views/users/shared/_error_messages.html.erb... Removed!
Converting: app/views/users/shared/_links.html.erb... Done!
Removing: app/views/users/shared/_links.html.erb... Removed!
Converting: app/views/users/unlocks/new.html.erb... Done!
Removing: app/views/users/unlocks/new.html.erb... Removed!

*たまに、途中でYorN?みたいに聞かれることはありますが、これはhamlファイル作ったけど、元のerbのファイルは消しちゃっていい?的なことを聞かれています。基本的に使わないはずなのでYesのYで大丈夫です。

これで、変換終了です。

よく聞くエラーとか

変換して早速ビューを見てみようとしたら、エラーが出たよ!って聞くことがあります。
templateがmissingしてtext/html的な・・・スクショしておけばよかったorz

結論、rails sを再起動すれば大抵治ります。焦らず再起動しましょう。

一つだけerbをhamlに変換したいけど、コマンドとか面倒くさい・・・って人もいるかもしれないです。
Convert HTML to HAMLというhtmlをコピペしただけでhamlに変換してくれるサイトもあります。載せておきますね。

終わりです。お疲れ様でした。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?