いてづきブログ

情シスでやってみたことの備忘録

railsにslimを導入するためにしたこと

railsのviewをslimで書くためにやったこと。

slim-railsの導入

Gemfileにslimを入れてbundle install。既存のerbを変換するためにhtml2slimも同時に入れる。

gem 'slim-rails'

group :development do
  gem 'html2slim'
end

erb2slimを実行しようとしたが…

既存のerbをslimにしようとerb2slimを実行したが、erb内で日本語文字を使用していたためエラー。

invalid byte sequence in US-ASCII (ArgumentError)

変換のときだけ日本語文字を省いてもいいが、同様の問題は今後も発生する可能性があるのでなるべくソース内に日本語文字を直書きしないようにするべくI18nを導入*1

railsguides.jp

I18nを導入

Gemを追加。

gem 'rails-i18n'

confg/application.rbでデフォルトのlocaleを指定。

config.i18n.default_locale = :ja

config/locale配下にymlを配置(view.ja.yml)

ja:
  users:
    index:
      name: 氏名

erb内からymlで指定した表記を呼び出す。

<%= I18n.t('.users.index.name') %>
#=> 氏名

erb2slimを再実行

改めてerbをslimに変換する。-dオプションは変換後に元のerbを削除するオプション。

bundle exec erb2slim app/views -d

変換後、上記のerb部分もきちんと変換された。

= I18n.t('.users.index.name')

まとめ

単にslimを入れるだけのはずがなぜか結構大仕事になっていた。 仕事で使ってるプロジェクトが、日本語しか使わないのにI18n使っててなんでなのかなぁと思ったけどこういう理由もあったりしたのかな。わからん。。。

*1:本来の目的ではないが勉強も兼ねて