Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

付録C ERB Lint

ERB Lint は、ERB テンプレートを確認するためのツールです。

本編では、ERB の構造を読みながら、layout.erb と各ビューの役割を分けて学びました。ERB Lint は、そのようなテンプレートの書き方を機械的に確認する補助として使えます。

ERB Lint で分かること

ERB Lint は、設定によって次のような点を確認できます。

  • ERB の構文
  • HTML の構造
  • インデント
  • 不要な空白
  • テンプレート内の Ruby コードの書き方

ただし、ERB Lint もアプリケーションの動作を保証するものではありません。フォーム送信、リダイレクト、エスケープ、404 は、実際に動かして確認します。

導入例

ERB Lint を使う場合は、Gemfile に開発用の gem として追加します。

group :development do
  gem "erb_lint", require: false
end

追加したら、依存関係をインストールします。

bundle install

実行例です。

bundle exec erblint views

設定ファイルを用意する場合は、利用するルールをプロジェクトに合わせて決めます。最初から厳しすぎる設定にすると、テンプレートの理解よりも指摘対応が中心になってしまうことがあります。

RuboCop との違い

RuboCop は Ruby ファイルを中心に確認します。

ERB Lint は、ERB テンプレートを確認します。

映画図鑑で言えば、app.rb は RuboCop、views/index.erbviews/show.erb は ERB Lint の対象になります。

よく見る観点

ERB を確認するときは、ツールを使う前に次の点も自分で見ます。

  • layout.erb だけに htmlheadbody があるか。
  • 各ビューに、その画面固有の中身だけが書かれているか。
  • フォームの label と入力欄が対応しているか。
  • 利用者入力を表示する箇所で h ヘルパーを使っているか。
  • 紹介文の改行表示を Ruby で <br> に変換していないか。

ツールは、読めるテンプレートを書くための補助です。ツールの指摘を消すことだけを目的にしないでください。