Rails开发:事务、路由与URL生成详解
1. Rails中的事务处理
1.1 事务的基本概念
数据库事务是将一系列更改组合在一起,确保这些更改要么全部应用,要么全部不应用。以银行账户间的资金转移为例,若从账户1向账户2转账100美元,正常逻辑是账户1存款增加100美元,账户2取款100美元。但如果存款成功而取款失败(如客户账户透支),就会导致数据不一致,凭空多出100美元。事务能解决这个问题,在事务范围内,SQL语句要么全部成功,要么全部无效。
1.2 Active Record中的事务使用
在Active Record中,使用 transaction 方法在特定数据库事务的上下文中执行代码块。代码块结束时,若没有异常抛出,事务会提交并更新数据库;若有异常,所有更改会回滚,数据库保持不变。事务与数据库连接相关,因此需使用Active Record类作为接收者来调用。示例代码如下:
Account.transaction do
account1.deposit(100)
account2.withdraw(100)
end
1.3 事务实验
1.3.1 创建数据库表
首先创建一个名为 accounts 的数据库表,包含账户编号和余额字段。
create_table :accounts, :force => true do |t|
t.s
超级会员免费看
订阅专栏 解锁全文
6

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



