HTMLテンプレートエンジンの haml-rails を Rails に導入する方法です。
Gemfile に以下を追加してbundle install
を実行します。
gem 'haml-rails'
ERB 形式のapplication.html.erb
を Haml に変換します。変換が正常にされたら ERB のファイルを削除して下さい。
$ ./bin/rails generate haml:application_layout convert
Success! app/views/layouts/application.html.haml is created.
Please remove the erb file: app/views/layouts/application.html.erb
$ rm app/views/layouts/application.html.erb
すでに開発が進められている場合、その他の ERB ビューファイルも Haml に変換する必要があります。変換用の Rake タスクが追加されているので実行してください。gem 'erb2haml'
は必要ありません。
$ ./bin/rake -T | grep haml rake haml:erb2haml # Convert html.erb to html.haml each file in app/views
実行すると途中で元の ERB ファイルを削除するか確認されます。変換を確認した後で削除しても問題ありません。
$ ./bin/rake haml:erb2haml Running via Spring preloader in process 52286 -------------------------------------------------------------------------------- Generating HAML for app/views/layouts/mailer.html.erb... Generating HAML for app/views/layouts/mailer.text.erb... -------------------------------------------------------------------------------- HAML generated for the following files: app/views/layouts/mailer.html.erb app/views/layouts/mailer.text.erb -------------------------------------------------------------------------------- Would you like to delete the original .erb files? (This is not recommended unless you are under version control.) (y/n) y Deleting original .erb files. -------------------------------------------------------------------------------- Task complete! No .erb files found. Task will now exit.
rails generate
コマンド使用時に生成される View が Haml に変わっています。
$ ./bin/rails generate controller users index create app/controllers/users_controller.rb route get 'users/index' invoke haml create app/views/users create app/views/users/index.html.haml
以上で完了です。