【问题标题】:saving multiple tables at once in rails在rails中一次保存多个表
【发布时间】:2015-04-19 00:00:13
【问题描述】:

我有一个像这样一次更新三个表的操作:

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

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

【问题讨论】:

  • 如何判断是否保存?
  • 可以进行交易吗?

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


【解决方案1】:

使用ActiveRecord::Transaction

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

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

【讨论】:

    猜你喜欢
    • 2011-01-31
    • 2013-10-05
    • 2017-11-20
    • 1970-01-01
    • 2012-07-23
    • 2012-08-18
    • 2014-02-10
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多