Just do IT

思うは招く

Rails エラーページを自動生成する hanmoto gem

hanmoto の設定

ソニックガーデンの方が作成されたgem。同社で1年以上にわたって運用実績があるとのこと。

参考

gemをインストール。

gem "hanmoto"

設定ファイルを生成。

touch config/initializers/hanmoto.rb

以下を追記。

Hanmoto.configure do |config|
  config.view_dir = 'public_pages'
  config.layouts = {
    html: 'public'
  }
end

エラーページのテンプレートファイルを作成。

touch app/views/layouts/public.html.slim

中身はこんな感じで。meta charset="utf-8"を設定しないとローカルでは文字化けした。

doctype html
html
  head
    meta charset="utf-8"
    title
      | testtest
    = stylesheet_link_tag 'application', media: 'all'
    = javascript_pack_tag 'application', 'data-turbolinks-track': 'reload'
  body
    = yield

各種エラーページファイルを生成。

#public_pagesディレクトリを作成
mkdir app/views/public_pages

#エラーファイルを作成
touch app/views/public_pages/404.html.slim
touch app/views/public_pages/500.html.slim
touch app/views/public_pages/422.html.slim

それぞれのファイルにエラーメッセージを書く。

そして、以下のどちらかのコマンドでエラーページの静的ファイルを出力できる。これをしないと表示が変わらないので注意。

#以下のどちらかを実行する
rake assets:precompile
rake hanmoto:publish

これで http://localhost:3000/404.html などにアクセスしてみると表示される。