Rails sandbox 下 user.save 能够保存 但是数据库中不显示 好奇妙的问题

sensi · 2014年03月09日 · 最后由 blueplanet 回复于 2014年03月10日 · 1983 次阅读

1 . rails console --sandbox 进入控制台 2. 建立了一个心的用户,并 save 到数据库 user.id 查询数据库成功是 id => 1

但是 问题来了--------- 进去 MySQL 并没有看到数据库更新 ..

然后我就直接进入 rails console 并没进去安全模式 同样的操作 保存 看到数据库 显示更新了一条信息 并且 id => 2


问题是 id => 1 的那条数据 哪里去了???????为什么 mysql 不显示
我用的是 navicate 管理工具

共收到 7 条回复

sandbox 意思是如果你退出了所有的操作都会不存在

#1 楼 @zlfera 你的意思是 sandbox 退出了之后 更新的那条数据库删除了。但是确实是调用了数据库

sandbox 模式用的是数据库的事务的功能。 推出的时候会执行 rollback 取消所有的操作

sandbox 沙盒...本意就是这么干的...

想测试的话 连接一个测试数据库 多好呢...

#3 楼 @blueplanet 没有退出了之前 去数据库里面也看不到信息,这个怎么解释阿!

#6 楼 @sensi 这就是 “事务” 的特点。没有最后 commit 的话其他的数据库链接是看不到的。查一下 mysql 的事务看一下吧

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册