aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorAlfred Dominic <mailme@alfiemax.com>2018-12-03 15:22:59 +0530
committerAlfred Dominic <mailme@alfiemax.com>2018-12-04 15:56:31 +0530
commitc4d157aafe05dde4a19dff2d95165e4022627608 (patch)
treea7f1276b62d77eb62956fc8aaf1bcfd0a8d1a97b /activerecord/lib
parent609c58bfa6df58b88e3eadebb1f1d49354541d24 (diff)
downloadrails-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.rb7
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