このコミットが含まれているのは:
2026-06-03 07:25:24 +09:00
コミット ff5e8c4d49
20個のファイルの変更311行の追加88行の削除
+10 -23
ファイルの表示
@@ -43,25 +43,12 @@ class ApplicationController < ActionController::API
render json: { errors: [error] }, status:
end
def render_model_errors record, status: :unprocessable_entity
errors =
record.errors.map do |error|
{ code: error.type.to_s,
field: error.attribute.to_s,
message: error.full_message }
end
errors = [{ code: 'invalid', message: '入力を確認してください.' }] if errors.empty?
render json: { errors: }, status:
end
def render_record_invalid error
render_model_errors(error.record)
render_validation_error error.record
end
def render_record_not_unique _error = nil
render_unprocessable_entity('既に存在してゐます.', code: :taken)
render_validation_error base: ['すでに存在してゐます.']
end
def reject_banned_ip_address!
@@ -77,27 +64,27 @@ class ApplicationController < ActionController::API
head :forbidden
end
def render_validation_error record = nil, fields: { }, base: []
def render_validation_error record = nil, fields: { }, base: [], status: :unprocessable_entity
errors = { }
if record
record.errors.messages.each do |attr, messages|
errors[attr] ||= []
errors[attr].concat(messages)
record.errors.each do |error|
errors[error.attribute] ||= []
errors[error.attribute] << error.message
end
end
fields.each do |attr, messages|
errors[attr] ||= []
errors[attr].concat(Array(messages))
errors[attr.to_sym] ||= []
errors[attr.to_sym].concat(Array(messages))
end
base_errors = Array(base) - Array(errors.delete(:base))
base_errors = Array(base) + Array(errors.delete(:base))
render json: { type: 'validation_error',
message: '入力内容を確認してください.',
errors:,
base_errors: },
status: :unprocessable_entity
status:
end
end