Active Record 事务与验证详解
1. 事务操作
在处理数据库操作时,事务是一种非常重要的机制,它可以确保一组操作要么全部成功,要么全部失败。下面是一个事务操作的示例代码:
account = Account.find(1)
Site.transaction do
Account.transaction do
new_site = Site.create(:name => "New Site")
account.site_id = new_site.id
end
end
需要注意的是,这种嵌套事务的解决方案通常不是最优的,而且完全分布式事务超出了 Active Record 的范围。
2. ActiveRecord::Validations 公共实例方法
ActiveRecord::Validations 模块提供了一系列用于验证 Active Record 对象的方法,以下是一些常见的公共实例方法:
| 方法名 | 描述 |
| ---- | ---- |
| errors() | 返回与 Active Record 对象关联的 Errors 对象,每个 Active Record 对象都会自动分配一个 Errors 对象。 |
| save_with_validation(perform_validation = true) | 先运行对象的所有验证,然后保存 Active Record 对象。如果存在验证错误,该方法返
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



