A RuboCop extension focused on enforcing Rails best practices and coding conventions.
Note: This repository manages rubocop-rails gem (>= 2.0.0). rubocop-rails gem (<= 1.5.0) has been renamed to rubocop-rails_config gem.
Just install the rubocop-rails gem
$ gem install rubocop-railsor if you use bundler put this in your Gemfile
gem 'rubocop-rails', require: falseYou need to tell RuboCop to load the Rails extension. There are three ways to do this:
Put this into your .rubocop.yml.
require: rubocop-railsAlternatively, use the following array notation when specifying multiple extensions.
require: - rubocop-other-extension - rubocop-railsNow you can run rubocop and it will automatically load the RuboCop Rails cops together with the standard cops.
$ rubocop --require rubocop-railsNote: --rails option is required while rubocop command supports --rails option.
require 'rubocop/rake_task' RuboCop::RakeTask.new do |task| task.requires << 'rubocop-rails' endIf you are using Rails 6.1 or newer, add the following config.generators.after_generate setting to your config/environments/development.rb to apply RuboCop autocorrection to code generated by bin/rails g.
# config/environments/development.rb Rails.application.configure do config.generators.after_generate do |files| parsable_files = files.filter { |file| file.end_with?('.rb') } unless parsable_files.empty? system("bundle exec rubocop -A --fail-level=E #{parsable_files.shelljoin}", exception: true) end end endIt uses rubocop -A to apply Style/FrozenStringLiteralComment and other unsafe autocorrection cops. rubocop -A is unsafe autocorrection, but code generated by default is simple and less likely to be incompatible with rubocop -A. If you have problems you can replace it with rubocop -a instead.
All cops are located under lib/rubocop/cop/rails, and contain examples/documentation.
In your .rubocop.yml, you may treat the Rails cops just like any other cop. For example:
Rails/FindBy: Exclude: - lib/example.rbYou can read a lot more about RuboCop Rails in its official docs.
Rails cops support the following versions:
- Rails 4.2+
If you use RuboCop Rails in your project, you can include one of these badges in your readme to let people know that your code is written following the community Rails Style Guide.
Here are the Markdown snippets for the two badges:
[](https://github.com/rubocop/rubocop-rails) [](https://rails.rubystyle.guide)Checkout the contribution guidelines.
rubocop-rails is MIT licensed. See the accompanying file for the full text.