Добавянето на елемент към колекцията го записва незабавно (освен ако потребителят не е запазен). Извикването за запазване създава своя собствена транзакция и това е, което се връща назад, а не транзакцията, в която е записан елементът
Можете да принудите всичко в една и съща транзакция, като я създадете изрично.
begin
User.transaction do
@user.items << item
@user.save!
render :json => {}, :status => :ok
end
rescue ActiveRecord::RecordInvalid
render :json => {:status => :error, :errors => item.errors}, :status => :bad_request
end