针对 FrozenStringLiteralComment 的 Rubocop 自动更正不起作用

Sex*_*hor 11 ruby ruby-on-rails rubocop

我有一个 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选项运行,我可以看到这个警察“支持 --auto-correct”,所以我不确定出了什么问题。

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

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

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

Seb*_*lma 22

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

从那里引用:

rubocop -a 执行所有自动更正,包括不安全的。必须添加 --safe-auto-correct 以排除不安全的。

-A现在应该使用该标志来安全和/或不安全地自动更正您的文件:

rubocop -a / --autocorrect 不再运行不安全的修正;rubocop -A / --autocorrect-all 运行安全和不安全的更正。选项 --safe-autocorrect 已弃用

它应该适合你:

bundle exec rubocop -A --only Style/FrozenStringLiteralComment
Run Code Online (Sandbox Code Playgroud)