This commit is contained in:
2026-05-10 05:32:08 +09:00
parent 5b50642756
commit 35e5af2f9a
8 changed files with 78 additions and 54 deletions
+7 -5
View File
@@ -177,8 +177,8 @@ class PostsController < ApplicationController
merge = bool?(:merge)
return head :bad_request if force && merge
base_version_no = nil
base_version_no = parse_base_version_no unless force
base_version_no = parse_base_version_no
return head :bad_request if !(force) && !(base_version_no)
title = params[:title].presence
tag_names = params[:tags].to_s.split
@@ -442,9 +442,11 @@ class PostsController < ApplicationController
def parse_base_version_no
version_no = Integer(params[:base_version_no], exception: false)
raise ArgumentError, 'base_version_no は必須です.' unless version_no&.positive?
version_no
if version_no&.positive?
version_no
else
nil
end
end
def post_snapshot_from_version version
+3 -3
View File
@@ -16,7 +16,7 @@ class VersionRecorder
@record = record_class.unscoped.lock.find(@record.id)
latest = latest_version
validate_version_sequence! latest
validate_version_sequence!(latest)
attrs = snapshot_attributes
@@ -27,7 +27,7 @@ class VersionRecorder
version = version_class.create!(
base_attributes(latest).merge(record_key => @record).merge(attrs))
update_record_version_no! version.version_no
update_record_version_no!(version.version_no)
version
end
@@ -47,7 +47,7 @@ class VersionRecorder
end
def update_record_version_no! version_no
@record.update_columns version_no: version_no
@record.update_columns(version_no:)
@record.version_no = version_no
end