aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/enum.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/enum.rb')
-rw-r--r--activerecord/lib/active_record/enum.rb7
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb
index efea9560ee..6bfdf75a2d 100644
--- a/activerecord/lib/active_record/enum.rb
+++ b/activerecord/lib/active_record/enum.rb
@@ -42,7 +42,12 @@ module ActiveRecord
_enum_methods_module.module_eval do
# def direction=(value) self[:direction] = DIRECTION[value] end
- define_method("#{name}=") { |value| self[name] = enum_values[value] }
+ define_method("#{name}=") { |value|
+ unless enum_values.has_key?(value)
+ raise ArgumentError, "'#{value}' is not a valid #{name}"
+ end
+ self[name] = enum_values[value]
+ }
# def direction() DIRECTION.key self[:direction] end
define_method(name) { enum_values.key self[name] }