diff --git a/app/views/fields/enum/_form.html.erb b/app/views/fields/enum/_form.html.erb
index 68c8b96..46c5faf 100755
--- a/app/views/fields/enum/_form.html.erb
+++ b/app/views/fields/enum/_form.html.erb
@@ -26,6 +26,6 @@ By default, the input is a select field for the enum attributes.
end,
f.object.public_send(field.attribute.to_s)
),
- { include_blank: !f.object.class.validators_on(field.attribute.to_s).map(&:class).include?(ActiveRecord::Validations::PresenceValidator) },
+ { include_blank: field.include_blank_option || !f.object.class.validators_on(field.attribute.to_s).map(&:class).include?(ActiveRecord::Validations::PresenceValidator) },
field.html_options) %>
diff --git a/lib/administrate/field/enum.rb b/lib/administrate/field/enum.rb
index fb9815d..050f906 100755
--- a/lib/administrate/field/enum.rb
+++ b/lib/administrate/field/enum.rb
@@ -12,6 +12,10 @@ def html_options
options[:html] || {}
end
+ def include_blank_option
+ options.fetch(:include_blank, false)
+ end
+
class Engine < ::Rails::Engine
end
end
diff --git a/spec/lib/administrate/field/enum_spec.rb b/spec/lib/administrate/field/enum_spec.rb
index d2fc746..cf378f8 100755
--- a/spec/lib/administrate/field/enum_spec.rb
+++ b/spec/lib/administrate/field/enum_spec.rb
@@ -12,6 +12,24 @@
end
end
+ describe '.include_blank' do
+ it 'is false by default' do
+ page = :show
+
+ field = Administrate::Field::Enum.new(:status, 'status', page)
+
+ expect(field.include_blank_option).to be_falsy
+ end
+
+ it 'can override include_blank_option' do
+ page = :show
+
+ field = Administrate::Field::Enum.with_options(include_blank: true).new(:status, 'status', page)
+
+ expect(field.include_blank_option).to be_truthy
+ end
+ end
+
describe '#html_options' do
it 'returns a hash of :html options' do
page = :show