ruby-on-rails - 在 rails 中一次保存多个表

标签 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

但是为了让程序更好,我想要么一次将所有三个一起保存,要么根本不保存

最佳答案

使用ActiveRecord::Transaction :

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

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

关于ruby-on-rails - 在 rails 中一次保存多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29724266/

相关文章:

ruby-on-rails - 使用 Devise 测试成功登录

ruby-on-rails - Redmine Hook 的验证问题

ruby - 如何使用 start_with 忽略大写字母?

sql - 从 Rails 4 应用程序调用大量 SQL

sql - 按字母顺序排列 ActiveRecord 结果

ruby-on-rails - 使用 `tap` 构建 Rails 作用域

ruby-on-rails - Authlogic - 通过基本 HTTP 身份验证进行身份验证

Ruby:如何检查字符串是否不为空?

postgresql - 如何搜索加密属性?

ruby-on-rails - Windows 7 x64 上的 Ruby on Rails SQLite 问题