Rails 多表事务

nancy · 2012年11月06日 · 最后由 nancy 回复于 2012年11月06日 · 2979 次阅读

customer 和 Info 是一对多关系

begin
Customer.transaction do
    customer = Customer.new(params[:customer])
    customer.save
    info = Info.new(params[params[:info]])
    info.save
end
rescue
  respond_to do |format|
    format.json { render :json => { "success" => false, "result" => "保存失败!"} }
  end
end

事务怎么不起作用呢?info 校验失败,customer 应该回滚,但是却插入数据库了。。 大家多表事务是怎么处理的

info.save 改为 info.save!

要用报错的方法。

#2 楼 @woaigithub 问题解决了,不知道有没有更好的方法。目前是校验不通过就直接报错

需要 登录 后方可回复, 如果你还没有账号请 注册新账号