use a transaction to handle authorization vs invalid record in synapse controller
This commit is contained in:
parent
496a15a836
commit
070bb0c368
1 changed files with 7 additions and 2 deletions
|
@ -22,10 +22,15 @@ class SynapsesController < ApplicationController
|
||||||
@synapse = Synapse.new(synapse_params)
|
@synapse = Synapse.new(synapse_params)
|
||||||
@synapse.desc = '' if @synapse.desc.nil?
|
@synapse.desc = '' if @synapse.desc.nil?
|
||||||
@synapse.desc.strip! # no trailing/leading whitespace
|
@synapse.desc.strip! # no trailing/leading whitespace
|
||||||
authorize @synapse
|
|
||||||
|
success = nil
|
||||||
|
ActiveRecord::Base.transaction do
|
||||||
|
success = @synapse.save
|
||||||
|
success ? authorize(@synapse) : skip_authorization
|
||||||
|
end
|
||||||
|
|
||||||
respond_to do |format|
|
respond_to do |format|
|
||||||
if @synapse.save
|
if success
|
||||||
format.json { render json: @synapse, status: :created }
|
format.json { render json: @synapse, status: :created }
|
||||||
else
|
else
|
||||||
format.json { render json: @synapse.errors, status: :unprocessable_entity }
|
format.json { render json: @synapse.errors, status: :unprocessable_entity }
|
||||||
|
|
Loading…
Add table
Reference in a new issue