any*_*acy 2 ruby ruby-on-rails rails-activerecord ruby-on-rails-4.1
我有一个动作,一次更新三个表,如下所示:
def action_save
@user.update(param_param_list1)
@application.update(param_list2)
@college.update(param_list3)
end
Run Code Online (Sandbox Code Playgroud)
但为了使程序更好,我想要一次保存所有三个或根本不保存
def action_save
@college.transaction do
@user.update!(param_param_list1)
@application.update!(param_list2)
@college.update!(param_list3)
end
end
Run Code Online (Sandbox Code Playgroud)
事务确保执行该块中的所有数据库操作.或者如果有错误,则回滚整个事务.