用法

您需要告诉 RuboCop 加载 Rails 扩展。有三种方法可以做到这一点

RuboCop 配置文件

将此内容放入您的 .rubocop.yml 中。

require: rubocop-rails

现在您可以运行 rubocop,它将自动加载 RuboCop Rails cops 以及标准 cops。

命令行

$ rubocop --require rubocop-rails

Rake 任务

RuboCop::RakeTask.new do |task|
  task.requires << 'rubocop-rails'
end

Rails 配置提示

如果您使用的是 Rails 6.1 或更高版本,请将以下 config.generators.after_generate 设置添加到您的 config/application.rb 中,以将 RuboCop 自动更正应用于 bin/rails g 生成的代码。

module YourCoolApp
  class Application < Rails::Application
    config.generators.after_generate do |files|
      parsable_files = files.filter { |file| File.exist?(file) && file.end_with?('.rb') }
      unless parsable_files.empty?
        system("bundle exec rubocop -A --fail-level=E #{parsable_files.shelljoin}", exception: true)
      end
    end
  end
end

它使用 rubocop -A 来应用 Style/FrozenStringLiteralComment 和其他不安全的自动更正 cops。rubocop -A 是不安全的自动更正,但默认生成的代码很简单,不太可能与 rubocop -A 不兼容。如果您遇到问题,可以将其替换为 rubocop -a