Rubocop 自动更正 FrozenStringLiteralComment 不起作用

Rubocop autocorrect for FrozenStringLiteralComment not working

我有一个 Rails 6 项目,我正在尝试使用 RuboCop 的 auto-correct 选项来修复许多 Style/FrozenStringLiteralComment 错误(主要在生成的文件中)。

无论我从项目根目录 运行 bundle exec rubocop --auto-correct --only Style/FrozenStringLiteralComment 多少次,Rubocop 只会报告错误,而不会自动更正它们:

app/models/product.rb:1:1: C: Style/FrozenStringLiteralComment: Missing frozen string literal comment.

从 运行 --show-cops 选项我可以看到这个警察 'Supports --auto-correct,' 所以我不确定哪里出了问题。

我的 .rubocop.yml 文件只有一个配置设置:require: rubocop-rails.

我也 运行 bundle exec rubocop -a 并且它纠正了配置和类似文件中的其他错误(主要是单引号)。

知道为什么自动更正在这种情况下不起作用吗?谢谢。

这是版本 0.87 中引入的重大更改(请参阅 issue)。

从那里引用:

rubocop -a does all autocorrections, including unsafe ones. One has to add --safe-auto-correct to exclude unsafe ones.

您现在应该使用 -A 标志来保护 and/or 不安全的自动更正您的文件:

rubocop -a / --autocorrect no longer run unsafe corrections; rubocop -A / --autocorrect-all run both safe and unsafe corrections. Options --safe-autocorrect is deprecated

它应该适合你:

bundle exec rubocop -A --only Style/FrozenStringLiteralComment