diff --git a/lib/administrate/field/polymorphic.rb b/lib/administrate/field/polymorphic.rb
index db8452a0450d9971d414a32ea4ba1345b5d5891c..22294b5e9586fcfeae2071c8e94020f13d44116f 100644
--- a/lib/administrate/field/polymorphic.rb
+++ b/lib/administrate/field/polymorphic.rb
@@ -30,7 +30,7 @@ module Administrate
       end
 
       def classes
-        options.fetch(:classes) || []
+        options.fetch(:classes, [])
       end
 
       private
diff --git a/spec/lib/fields/polymorphic_spec.rb b/spec/lib/fields/polymorphic_spec.rb
index d17056cc4324fdf366253cc1fe5d7e60646cc470..a1b5a280e8cb141949e532a70f5d06a606b0d5f3 100644
--- a/spec/lib/fields/polymorphic_spec.rb
+++ b/spec/lib/fields/polymorphic_spec.rb
@@ -51,4 +51,25 @@ describe Administrate::Field::Polymorphic do
       expect(field.selected_global_id).to eq(nil)
     end
   end
+
+  describe "#classes" do
+    let(:field) { Administrate::Field::Polymorphic.new(:foo, "hello", :show) }
+
+    context "not present in options" do
+      it "returns an empty array" do
+        allow(field).to receive(:options).and_return({})
+
+        expect(field.send(:classes)).to eq([])
+      end
+    end
+
+    context "present in options" do
+      it "returns an present value" do
+        classes = ["one", "two", "three"]
+        allow(field).to receive(:options).and_return(classes: classes)
+
+        expect(field.send(:classes)).to eq(classes)
+      end
+    end
+  end
 end