Techioz Blog

FrozenStringLiteralComment の Rubocop 自動修正が機能しない

概要

Rails 6 プロジェクトがあり、RuboCop の自動修正オプションを使用して、多くの Style/FrozenStringLiteralComment エラー (主に生成されたファイル内) を修正しようとしています。

プロジェクト ルートから Bundle execrubocop –auto-correct –only Style/FrozenStringLiteralComment を何度実行しても、Rubocop はエラーを報告するだけで、自動修正はしません。

app/models/product.rb:1:1: C: Style/FrozenStringLiteralComment: 凍結された文字列リテラル コメントがありません。

–show-cops オプションを指定して実行すると、このcopが「-auto-correct」をサポートしていることがわかります。そのため、何が問題なのかわかりません。

私の .rubocop.yml ファイルには、require:rubocop-rails という構成設定が 1 つだけあります。

また、bundle execrubocop -a を実行したところ、設定ファイルや同様のファイルの他のエラー (ほとんどが単一引用符) が修正されました。

この場合、自動修正が機能しない理由はわかりますか?ありがとう。

解決策

これはバージョン 0.87 で導入された重大な変更です (問題を参照)。

そこから引用すると:

ファイルを安全または安全でない自動修正するには、ここで -A フラグを使用する必要があります。

次のように機能するはずです。

bundle exec rubocop -A --only Style/FrozenStringLiteralComment