在rails中一次保存多个表

时间:2015-04-19 00:00:13

标签: ruby-on-rails ruby rails-activerecord ruby-on-rails-4.1

我有一个动作一次更新三个表:

    def action_save
        @user.update(param_param_list1)
        @application.update(param_list2)
        @college.update(param_list3)
    end

但是为了使程序更好,我想要一次保存所有三个或者根本不保存

1 个答案:

答案 0 :(得分:7)

使用ActiveRecord::Transaction

def action_save
  @college.transaction do
    @user.update!(param_param_list1)
    @application.update!(param_list2)
    @college.update!(param_list3)
  end
end 

事务确保执行该块中的所有数据库操作。或者如果有错误,则回滚整个事务。