rails的create与create!和save与save!的区别
?
很无语弄了一下午的rails console?
本想用console插入一些records
结果一直不能,总是出现rollback提示
以为是数据库mysql的问题,又查看了mysql自动提交,事务隔离界别等
但是一直还是没解决问题..
最后 终于知道了.. 怎么知道的过程就不记得了
?
原来是 自己写的model有好多validates..从来没遇到过这种情况以至于一直rollback却不知道自己插入数据并不符合自己的条件
?
一直使用的是 save方法 和 create方法
但是文档上写着:
By default, save always run validations. If any of them fail the action is cancelled and save returns false. However, if you supply :validate => false, validations are bypassed altogether.?
?
With save! validations always run. If any of them fail ActiveRecord::RecordInvalid gets raised
?
而且明确说明是需要validates的
同理 create和create!也是
?
?