Just do IT

思うは招く

rubocop -a で frozen string literal が自動修正されない

問題

rubocop -aで自動修正しようとしたところ、frozen string literal のマジックコメントが自動で追加されておらず警告が出る。

config/initializers/wrap_parameters.rb:1:1: C: [Corrected] Style/FrozenStringLiteralComment: Missing frozen string literal comment.
# Be sure to restart your server when you modify this file.

解決

-aではなく-Aにする。

rubocop -A

これでrubocop --auto-correct-allと同じ意味になる。RuboCop 0.87 から仕様が変わったとのこと。

本編9章で rubocop -a を実行すると Style/FrozenStringLiteralComment cop によるマジックコメントが適用されるとあるのですが、RuboCop 0.87 以降では -a オプションでは適用されなくなりました。rubocop -a は安全な cop のみ自動修正するオプションという意味合いに変わったためです。

パーフェクトRuby on Rails【増補改訂版】をレビュアー献本いただいた - koicの日記