- #556: Fix a false positive for
Rails/ContentTag
when using using thetag
method with 3 or more arguments. (@koic) - #551: Fix a false positive for
Rails/FindEach
when usingmodel.errors.where
in Rails 6.1. (@koic) - #543: Fix an error for
Rails/ContentTag
whentag
is not a top-level method. (@koic) - #559: Fix an error for
Rails/RelativeDateConstant
when using multiple assignment. (@koic) - #553: Fix a false positive for
Rails/ReversibleMigration
when usingt.remove
withtype
option in Rails 6.1. (@koic)
- #546: Exclude
app/models
by default forRails/ContentTag
. (@koic) - #570: Make
Rails/CreateTableWithTimestamps
respectactive_storage_variant_records
table ofdb/migrate/*_create_active_storage_tables.active_storage.rb
auto-generated bybin/rails active_storage:install
even ifcreated_at
is not specified. (@koic)
- #541: Fix an error for
Rails/HasManyOrHasOneDependent
when using lambda argument and specifying:dependent
strategy. (@koic)
- #535: Fix an error for
Rails/HasManyOrHasOneDependent
when using lambda argument and not specifying any options. (@koic)
- #521: Support auto-correction for
Rails/Output
. (@koic) - #520: Support auto-correction for
Rails/ScopeArgs
. (@koic) - #524: Add new
Rails/RedundantTravelBack
cop. (@koic)
- #528: Fix a false positive for
Rails/HasManyOrHasOneDependent
when specifying:dependent
strategy with double splat. (@koic) - #529: Fix a false positive for
Rails/LexicallyScopedActionFilter
when action method is aliased byalias_method
. (@koic) - #532: Fix a false positive for
Rails/HttpPositionalArguments
when definingget
inRails.application.routes.draw
block. (@koic)
- #260: Change target of
Rails/ContentTag
fromcontent_tag
method totag
method. (@tabuchi0919)
- #517: Fix an issue for
Rails/UniqueValidationWithoutIndex
when validating uniqueness with a polymorphic scope. (@theunraveler)
- #515: Fix an error for
Rails/BulkChangeTable
when using Psych 4.0. (@koic) - #512: Fix a false positive for
Rails/FindBy
when usingtake
with arguments. (@koic)
- #509: Fix an error for
Rails/ReflectionClassName
when usingclass_name: to_s
. (@skryukov) - #510: Fix an error for
Rails/FindBy
when calling#first
or#take
on aRange
object. (@johnsyweb) - #507: Fix an error for
Rails/FindBy
when callingtake
after block. (@koic) - #504: Fix a false positive for
Rails/FindBy
when receiver is not an Active Record. (@nvasilevski)
- #486: Add new
Rails/ExpandedDateRange
cop. (@koic) - #494: Add new
Rails/UnusedIgnoredColumns
cop. (@pocke) - #490: Make
Rails/HttpStatus
aware ofhead
method. (@koic) - #483: Add new
Rails/EagerEvaluationLogMessage
cop. (@aesthetikx) - #495: Add new
Rails/I18nLocaleAssignment
cop. (@koic) - #497: Add new
Rails/AddColumnIndex
cop. (@dvandersluis)
- #482: Fix a false positive for
Rails/RelativeDateConstant
when assigning (hashes/arrays/etc)-containing procs to a constant. (@jdelStrother) - #419: Fix an error for
Rails/UniqueValidationWithoutIndex
when using a unique index andcheck_constraint
that hasnil
first argument. (@koic) - #70: Fix a false positive for
Rails/TimeZone
when settingEnforcedStyle: strict
and usingTime.current
. (@koic) - #488: Fix a false positive for
Rails/ReversibleMigrationMethodDefinition
when using cbase migration class. (@koic) - #500: Fix a false positive for
Rails/DynamicFindBy
when using dynamic finder with hash argument. (@koic)
- #288: Add
AllowToTime
option (true
by default) toRails/Date
. (@koic) - #499: Add
IgnoreWhereFirst
option (true
by default) toRails/FindBy
. (@koic) - #505: Set disabled by default for
Rails/EnvironmentVariableAccess
. (@koic)
- #457: Add new
Rails/ReversibleMigrationMethodDefinition
cop. (@leonp1991) - #446: Add new
Rails/RequireDependency
cop. (@tubaxenor) - #458: Add new
Rails/TimeZoneAssignment
cop. (@olivierbuffon) - #442: Add new
Rails/EnvironmentVariableAccess
cop. (@drenmi)
- #421: Fix incorrect auto-correct for
Rails/LinkToBlank
when usingtarget: '_blank'
with hash brackets for the option. (@koic) - #436: Fix a false positive for
Rails/ContentTag
when the first argument is a splat argument. (@koic) - #435: Fix a false negative for
Rails/BelongsTo
when usingbelongs_to
lambda block withrequired
option. (@koic) - #451: Fix a false negative for
Rails/RelativeDateConstant
when a method is chained after a relative date method. (@koic) - #450: Fix a crash for
Rails/ContentTag
with nested content tags. (@tejasbubane) - #103: Fix a false positive for
Rails/FindEach
when not inheritingActiveRecord::Base
and usingall.each
. (@koic) - #466: Fix a false positive for
Rails/DynamicFindBy
when not inheritingApplicationRecord
and without no receiver. (@koic) - #147: Fix a false positive for
Rails/HasManyOrHasOneDependent
when specifying defaultdependent: nil
strategy. (@koic) - #137: Make
Rails/HasManyOrHasOneDependent
aware ofreadonly?
istrue
. (@koic) - #474: Fix a false negative for
Rails/SafeNavigation
when usingtry!
without receiver. (@koic) - #126: Fix an incorrect auto-correct for
Rails/SafeNavigation
withStyle/RedndantSelf
. (@koic) - #476: Fix a false positive for
Rails/ReversibleMigration
when usingdrop_table
with symbol proc. (@koic)
- #409: Deconstruct "table.column" in
Rails/WhereNot
. (@mobilutz) - #416: Make
Rails/HasManyOrHasOneDependent
accept combination of association extension andwith_options
. (@ohbarye) - #432: Exclude gemspec file by default for
Rails/TimeZone
cop. (@koic) - #440: This PR makes
Rails/TimeZone
aware of timezone specifier. (@koic) - #381: Update
IgnoredMethods
list forLint/NumberConversion
to allow Rails' duration methods. (@dvandersluis) - #444: Mark
Rails/Blank
as unsafe auto-correction. (@koic) - #451: Make
Rails/RelativeDateConstant
aware ofyesterday
andtomorrow
methods. (@koic) - #454: Mark
Rails/WhereExists
as unsafe auto-correction. (@koic) - #403: Mark
Rails/WhereEquals
as unsafe auto-correction. (@koic) - #379: Mark
Rails/DynamicFindBy
as unsafe. (@koic) - #106: Mark
Rails/ReflectionClassName
as unsafe. (@koic) - #106: Make
Rails/ReflectionClassName
aware of the use of string withto_s
. (@koic) - #456: Drop Ruby 2.4 support. (@koic)
- #462: Require RuboCop 1.7 or higher. (@koic)
- #408: Fix bug in
Rails/FindEach
where config was ignored. (@ghiculescu) - #401: Fix an error for
Rails/WhereEquals
using only named placeholder template without replacement argument. (@koic)
- #404: Make
Rails/HelperInstanceVariable
accepts of instance variables when a class which inheritsActionView::Helpers::FormBuilder
. (@koic) - #406: Deconstruct "table.column" in
Rails/WhereEquals
. (@mobilutz)
- #362: Add new
Rails/WhereEquals
cop. (@eugeneius) - #339: Add new
Rails/AttributeDefaultBlockValue
cop. (@cilim) - #344: Add new
Rails/ArelStar
cop which checks for quoted literal asterisks inarel_table
calls. (@flanger001) - #389: Add
IgnoredMethods
config option forRails/FindEach
cop. (@tejasbubane)
- #371: Fix an infinite loop error for
Rails/ActiveRecordCallbacksOrder
when callbacks have inline comments. (@fatkodima) - #364: Fix a problem that
Rails/UniqueValidationWithoutIndex
doesn't work in classes defined with compact style. (@sinsoku) - #384: Mark unsafe for
Rails/NegateInclude
. (@koic) - #394: Fix false offense detection of
Rails/RedundantAllowNil
when using both allow_nil and allow_blank on different helpers of the same validator`. (@ngouy)
- #383: Require RuboCop 0.90 or higher. (@koic)
- #365: Mark
Rails/SquishedSQLHeredocs
unsafe for autocorrection. (@tejasbubane)
- #345: Fix error of
Rails/AfterCommitOverride
onafter_commit
with a lambda. (@pocke) - #349: Fix errors of
Rails/UniqueValidationWithoutIndex
. (@Tietew) - #338: Fix a false positive for
Rails/IndexBy
andRails/IndexWith
when theeach_with_object
hash is used in the transformed key or value. (@eugeneius) - #351: Add
<>
operator toRails/WhereNot
cop. (@Tietew) - #352: Do not register offense if given a splatted hash. (@dvandersluis)
- #346: Fix a false positive for
Rails/DynamicFindBy
when any of the arguments are splat argument. (@koic) - #357: Fix a false positive for
Rails/ReversibleMigration
when keyword arguments ofchange_column_default
are in the order ofto
,from
. (@koic)
- #291: Add new
Rails/SquishedSQLHeredocs
cop. (@mobilutz) - #52: Add new
Rails/AfterCommitOverride
cop. (@fatkodima) - #323: Add new
Rails/OrderById
cop. (@fatkodima) - #274: Add new
Rails/WhereNot
cop. (@fatkodima) - #311: Make
Rails/HelperInstanceVariable
aware of memoization. (@koic) - #332: Fix
Rails/ReflectionClassName
cop false negative when relation had a scope parameter. (@bubaflub)
- #315: Allow to use frozen scope for
Rails/UniqueValidationWithoutIndex
. (@krim) - #313: Fix
Rails/ActiveRecordCallbacksOrder
to preserve the original callback execution order. (@eugeneius) - #319: Fix a false positive for
Rails/Inquiry
when#inquiry
's receiver is a variable. (@koic) - #327: Fix
Rails/ContentTag
autocorrect to handle html5 tag names with hyphens. (@jaredmoody)
- #312: Mark
Rails/MailerName
as unsafe for auto-correct. (@eugeneius) - #294: Update
Rails/ReversibleMigration
to register offenses forremove_columns
andremove_index
. (@philcoggins) - #310: Add
EnforcedStyle
toRails/PluckInWhere
. By default, it does not register an offense ifpluck
method's receiver is a variable. (@koic) - #320: Mark
Rails/UniqBeforePluck
as unsafe auto-correction. (@kunitoo) - #324: Make
Rails/IndexBy
andRails/IndexWith
aware ofto_h
with block. (@eugeneius) - #341: Make
Rails/WhereExists
configurable to allowwhere(...).exists?
to be the preferred style. (@dvandersluis)
- #297: Handle an upstream Ruby issue where the DidYouMean module is not available, which would break the
Rails/UnknownEnv
cop. (@taylorthurlow) - #300: Fix
Rails/RenderInline
error on variable key in render options. (@tejasbubane) - #305: Fix crash in
Rails/MatchRoute
cop whenvia
option is a variable. (@tejasbubane)
- #283: Add new
Rails/FindById
cop. (@fatkodima) - #285: Add new
Rails/ActiveRecordCallbacksOrder
cop. (@fatkodima) - #276: Add new
Rails/RenderPlainText
cop. (@fatkodima) - #76: Add new
Rails/DefaultScope
cop. (@fatkodima) - #275: Add new
Rails/MatchRoute
cop. (@fatkodima) - #286: Add new
Rails/WhereExists
cop. (@fatkodima) - #271: Add new
Rails/RenderInline
cop. (@fatkodima) - #281: Add new
Rails/MailerName
cop. (@fatkodima) - #280: Add new
Rails/ShortI18n
cop. (@fatkodima) - #282: Add new
Rails/Inquiry
cop. (@fatkodima) - #246: Add new
Rails/PluckInWhere
cop. (@fatkodima) - #17: Add new
Rails/NegateInclude
cop. (@fatkodima) - #278: Add new
Rails/Pluck
cop. (@eugeneius) - #272: Add new
Rails/PluckId
cop. (@fatkodima)
- #261: Fix auto correction for
Rails/ContentTag
whencontent_tag
is called with options hash and block. (@fatkodima)
- #263: Change terminology to
ForbiddenMethods
andAllowedMethods
. (@jcoyne) - #289: Update
Rails/SkipsModelValidations
to register an offense forinsert_all
,touch_all
,upsert_all
, etc. (@eugeneius) - #293: Require RuboCop 0.87 or higher. (@koic)
- #51: Add allowed receiver class names option for
Rails/DynamicFindBy
. (@tejasbubane) - #211: Add autocorrect to
Rails/RakeEnvironment
cop. (@tejasbubane) - #242: Add
Rails/ContentTag
cop. (@tabuchi0919) - #249: Add new
Rails/Pick
cop. (@eugeneius) - #257: Add new
Rails/RedundantForeignKey
cop. (@eugeneius)
- #12: Fix a false positive for
Rails/SkipsModelValidations
when passing a boolean literal totouch
. (@eugeneius) - #238: Fix auto correction for
Rails/IndexBy
when the.to_h
invocation is separated in multiple lines. (@diogoosorio) - #248: Fix a false positive for
Rails/SaveBang
whenupdate
is called onENV
. (@eugeneius) - #251: Fix a false positive for
Rails/FilePath
when the result ofRails.root.join
is interpolated at the end of a string. (@eugeneius) - #91: Fix
Rails/UniqBeforePluck
to not recommend usinguniq
inActiveRecord::Relation
s anymore since it was deprecated in Rails 5.0. (@santib, @ghiculescu)
- #233: (BREAKING) Drop support for Ruby 2.3. (@koic)
- #236: (BREAKING) Drop support for Rails 4.1 or lower. (@koic)
- #210: Accept
redirecto_to(...) and return
and similar cases. (@koic) - #258: Drop support for RuboCop 0.81 or lower. (@koic)
- #213: Fix a false positive for
Rails/UniqueValidationWithoutIndex
when using conditions. (@sunny) - #215: Fix a false positive for
Rails/UniqueValidationWithoutIndex
when using Expression Indexes. (@koic) - #214: Fix an error for
Rails/UniqueValidationWithoutIndex
when a table has no column definition. (@koic) - #221: Make
Rails/UniqueValidationWithoutIndex
aware ofadd_index
in db/schema.rb. (@koic)
- #223: Mark
Rails/ApplicationController
,Rails/ApplicationJob
,Rails/ApplicationMailer
, andRails/ApplicationRecord
as unsafe autocorrect. (@hoshinotsuyoshi)
- #197: Add
Rails/UniqueValidationWithoutIndex
cop. (@pocke) - #208: Add new
Rails/IndexBy
andRails/IndexWith
cops. (@djudd, @eugeneius) - #150: Add
EnforcedStyle: refute
forRails/RefuteMethods
cop. (@koic)
- #180: Fix a false positive for
HttpPositionalArguments
when usingget
method with:to
option. (@koic) - #193: Make
Rails/EnvironmentComparison
aware ofRails.env
is used in RHS or when!=
is used for comparison. (@koic) - #205: Make
Rails/ReversibleMigration
aware of:to_table
option ofremove_foreign_key
. (@joshpencheon) - #207: Fix a false positive for
Rails/RakeEnvironment
when using Capistrano. (@sinsoku)
- #184: Fix
Rake/Environment
to allow task with no block. (@hanachin) - #122: Fix
Exclude
paths that were not inherited. (@koic) - #187: Fix an issue that excluded files in rubocop-rails did not work. (@sinsoku)
- #190: Fix
Rails/SaveBang
when return value is checked immediately. (@jas14)
- #170: Make
Rails/BulkChangeTable
not suggest combining methods with an intervening block. (@mvz) - #159: Fix autocorrect for
Rails/EnumHash
when using % arrays notations. (@ngouy)
- #123: Add new
Rails/ApplicationController
andRails/ApplicationMailer
cops. (@eugeneius) - #130: Add new
Rails/RakeEnvironment
cop. (@pocke) - #133: Add new
Rails/SafeNavigationWithBlank
cop. (@gyfis)
- #120: Fix message for
Rails/SaveBang
when the save is in the body of a conditional. (@jas14) - #131: Fix an incorrect autocorrect for
Rails/Presence
when using[]
method. (@forresty) - #142: Fix an incorrect autocorrect for
Rails/EnumHash
when using nested constants. (@koic) - #136: Fix a false positive for
Rails/ReversibleMigration
when usingchange_default
with:from
and:to
options. (@sinsoku) - #144: Fix a false positive for
Rails/ReversibleMigration
when usingchange_table_comment
orchange_column_comment
with a:from
and:to
hash. (@DNA)
- #156: Make
Rails/UnknownEnv
cop aware ofRails.env == 'unknown_env'
. (@pocke) - #141: Change default of
EnforcedStyle
fromarguments
toslashes
forRails/FilePath
. (@koic)
- #118: Fix an incorrect autocorrect for
Rails/Validation
when attributes are specified with array literal. (@koic) - #116: Fix an incorrect autocorrect for
Rails/Presence
whenelse
branch of ternary operator is not nil. (@koic)
- #104: Exclude Rails-independent
bin/bundle
by default. (@koic) - #107: Fix style guide URLs when specifying
rubocop --display-style-guide
option. (@koic) - #111: Fix an incorrect autocorrect for
Rails/Presence
when method arguments ofelse
branch is not enclosed in parentheses. (@koic)
- #78: Add new
Rails/EnumHash
cop. (@fedeagripa, @brunvez, @santib)
- #53: Fix a false positive for
Rails/SaveBang
when implicitly return using finder method and creation method connected by||
. (@koic) - #97: Fix two false negatives for
Rails/EnumUniqueness
. 1. Whenenum
name is not a literal. 2. Whenenum
has multiple definitions. (@santib)
- #98: Mark
Rails/ActiveRecordAliases
asSafeAutoCorrect
false and disable autocorrect by default. (@prathamesh-sonpatki) - #101: Mark
Rails/SaveBang
asSafeAutoCorrect
false and disable autocorrect by default. (@prathamesh-sonpatki) - #102: Include
create_or_find_by
inRails/SaveBang
cop. (@MaximeLaurenty)
- #43: Remove
change_column_null
method fromBulkChangeTable
cop offenses. (@anthony-robin) - #79: Fix
RuboCop::Cop::Rails not defined (NameError)
. (@rmm5t)