diff --git a/app/models/version.rb b/app/models/version.rb
index <HASH>..<HASH> 100644
--- a/app/models/version.rb
+++ b/app/models/version.rb
@@ -332,6 +332,10 @@ class Version < ApplicationRecord
     Deletion.find_by(rubygem: rubygem.name, number: number, platform: platform)&.user unless indexed
   end
 
+  def prerelease
+    self[:prerelease] || !!to_gem_version.prerelease?
+  end
+
   private
 
   def platform_and_number_are_unique
@@ -348,7 +352,7 @@ class Version < ApplicationRecord
   end
 
   def update_prerelease
-    self[:prerelease] = !!to_gem_version.prerelease? # rubocop:disable Style/DoubleNegation
+    self[:prerelease] = prerelease
   end
 
   def full_nameify!
diff --git a/test/unit/version_test.rb b/test/unit/version_test.rb
index <HASH>..<HASH> 100644
--- a/test/unit/version_test.rb
+++ b/test/unit/version_test.rb
@@ -10,7 +10,6 @@ class VersionTest < ActiveSupport::TestCase
     end
 
     should "only have relevant API fields" do
-      @version.send(:update_prerelease) # called usually on save, calling here to set prerelease properly
       json = @version.as_json
 
       fields = %w[number built_at summary description authors platform
Version#prerelease now works the same whether or not the record is saved