我做一个 api 接口,因为涉及事务,所以我设计是这样的: controller
def update
if @user.update_and_set_user_order(user_params)
render json: @user
else
render json: { errors: @user.errors }, status: :unprocessable_entity
end
end
model:
def update_and_set_user_order user_params
begin
transaction do
self.update!(user_params)
...
self.user_order.save!
end
rescue
false
end
end
因为上面我捕获了异常,而在事务里,必须出现异常,事务才会启动。可是由于捕获了异常,所以我获取不到 errors 信息,不知道上面应该怎么修改比较优雅的解决这个问题呢?