diff options
author | Amr Tamimi <amrnt0@gmail.com> | 2013-12-20 14:12:59 +0200 |
---|---|---|
committer | Amr Tamimi <amrnt0@gmail.com> | 2014-01-01 01:48:15 +0200 |
commit | e0ad9ae27e9b6dc5460d91761ce6fbd7a92b08f0 (patch) | |
tree | 9e8cefb5be21412de34e786dba59e48721c9f4ff /activerecord/lib | |
parent | ec466998387453203444f4c6a24eb92eb204d27a (diff) | |
download | rails-e0ad9ae27e9b6dc5460d91761ce6fbd7a92b08f0.tar.gz rails-e0ad9ae27e9b6dc5460d91761ce6fbd7a92b08f0.tar.bz2 rails-e0ad9ae27e9b6dc5460d91761ce6fbd7a92b08f0.zip |
Add the ability to nullify the `enum` column
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/enum.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/enum.rb b/activerecord/lib/active_record/enum.rb index 2f8439892b..1d484f7c15 100644 --- a/activerecord/lib/active_record/enum.rb +++ b/activerecord/lib/active_record/enum.rb @@ -18,6 +18,11 @@ module ActiveRecord # # conversation.update! status: 1 # conversation.status = "archived" # + # # conversation.update! status: nil + # conversation.status = nil + # conversation.status.nil? # => true + # conversation.status # => nil + # # You can set the default value from the database declaration, like: # # create_table :conversations do |t| @@ -62,7 +67,7 @@ module ActiveRecord _enum_methods_module.module_eval do # def status=(value) self[:status] = STATUS[value] end define_method("#{name}=") { |value| - unless enum_values.has_key?(value) + unless enum_values.has_key?(value) || value.blank? raise ArgumentError, "'#{value}' is not a valid #{name}" end self[name] = enum_values[value] |