読んで欲しい人
- hamlをインストールしたのに、自動生成されるファイルの拡張子が全部.erbになって困っている人
- 過去の俺
動作環境
- Ruby 3.3.0
- Rails 7.1.3.4
エラー内容
- gemfileにhaml-railsの記述があるのに、generateコマンドで生成されるviewファイルの拡張子が.erbになっている
# gemfileの中身
source 'https://rubygems.org'
ruby '3.3.0'
gem 'rails', '~> 7.1.3', '>= 7.1.3.2'
gem 'bootsnap', require: false
gem 'pg', '~> 1.1'
gem 'puma', '>= 5.0'
gem 'sprockets-rails'
gem 'stimulus-rails'
gem 'turbo-rails'
gem 'haml-rails' #hamlを使用できるようにするgem
gem 'html2haml' #erbをhamlに変えてくれるgem
-
rails g controller ModelName
とかを打つと、viewファイルがerbで生成される
解決方法
- gemfile内のgemを追記する場所を変えると、viewファイルをhaml拡張子で自動生成してくれた
# 修正後のgemfile
source 'https://rubygems.org'
ruby '3.3.0'
gem 'rails', '~> 7.1.3', '>= 7.1.3.2'
gem 'bootsnap', require: false
gem 'pg', '~> 1.1'
gem 'puma', '>= 5.0'
gem 'sprockets-rails'
gem 'stimulus-rails'
gem 'turbo-rails'
# 開発環境とテスト環境内で使用する
group :development, :test do
gem 'haml-rails'
gem 'html2haml'
end
原因
現時点ではわかりませんでした。
ただ、haml-rails gemはhamlジェネレータをrailsの5, 6, 7系に提供をすることで、hamlをディフォルトのテンプレートとして設定してくれています。
haml-railsのreadmeには特に環境指定をするような記述はないので、自分の知識不足だったのかもしれません。
補足
同じ様なgemにhamlit-rails
というgemがあるらしいです。
既存のhaml-rails
に挙げられているissueを参考にして生成されたgemらしいのでパフォーマンスはこちらの方が良いのかしら?
ネットに落ちていたhamlit-railsについての記事