aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael França <rafaelmfranca@gmail.com>2018-12-04 11:48:40 -0500
committerGitHub <noreply@github.com>2018-12-04 11:48:40 -0500
commite5172265bf36c0834a67ef82c0ad514cfe7671df (patch)
treea7f1276b62d77eb62956fc8aaf1bcfd0a8d1a97b /activerecord/lib
parent609c58bfa6df58b88e3eadebb1f1d49354541d24 (diff)
parentc4d157aafe05dde4a19dff2d95165e4022627608 (diff)
downloadrails-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.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