diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2018-12-04 11:48:40 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-04 11:48:40 -0500 |
commit | e5172265bf36c0834a67ef82c0ad514cfe7671df (patch) | |
tree | a7f1276b62d77eb62956fc8aaf1bcfd0a8d1a97b /activerecord/lib | |
parent | 609c58bfa6df58b88e3eadebb1f1d49354541d24 (diff) | |
parent | c4d157aafe05dde4a19dff2d95165e4022627608 (diff) | |
download | rails-e5172265bf36c0834a67ef82c0ad514cfe7671df.tar.gz rails-e5172265bf36c0834a67ef82c0ad514cfe7671df.tar.bz2 rails-e5172265bf36c0834a67ef82c0ad514cfe7671df.zip |
Merge pull request #34605 from alfie-max/disable_enum_scopes
option to disable all scopes that `ActiveRecord.enum` generates
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/enum.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb index d62cd3f92a..d7cb7691e0 100644 --- a/activerecord/lib/active_record/enum.rb +++ b/activerecord/lib/active_record/enum.rb @@ -149,6 +149,7 @@ module ActiveRecord klass = self enum_prefix = definitions.delete(:_prefix) enum_suffix = definitions.delete(:_suffix) + enum_scopes = definitions.delete(:_scopes) definitions.each do |name, values| assert_valid_enum_definition_values(values) # statuses = { } @@ -195,8 +196,10 @@ module ActiveRecord define_method("#{value_method_name}!") { update!(attr => value) } # scope :active, -> { where(status: 0) } - klass.send(:detect_enum_conflict!, name, value_method_name, true) - klass.scope value_method_name, -> { where(attr => value) } + if enum_scopes != false + klass.send(:detect_enum_conflict!, name, value_method_name, true) + klass.scope value_method_name, -> { where(attr => value) } + end end end enum_values.freeze |