我有一个 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
选项我可以看到这个警察“支持--自动更正”,所以我不确定出了什么问题。
我的 .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
立即标记以安全和/或不安全地自动更正您的文件: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
关于ruby-on-rails - 针对 FrozenStringLiteralComment 的 Rubocop 自动更正不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62984228/