diff options
author | Alfred Dominic <mailme@alfiemax.com> | 2018-12-03 15:22:59 +0530 |
---|---|---|
committer | Alfred Dominic <mailme@alfiemax.com> | 2018-12-04 15:56:31 +0530 |
commit | c4d157aafe05dde4a19dff2d95165e4022627608 (patch) | |
tree | a7f1276b62d77eb62956fc8aaf1bcfd0a8d1a97b /activerecord/lib | |
parent | 609c58bfa6df58b88e3eadebb1f1d49354541d24 (diff) | |
download | rails-c4d157aafe05dde4a19dff2d95165e4022627608.tar.gz rails-c4d157aafe05dde4a19dff2d95165e4022627608.tar.bz2 rails-c4d157aafe05dde4a19dff2d95165e4022627608.zip |
option to disable scopes that `ActiveRecord.enum` generates by default
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 |