rails中会使用 update_attribute 或者 update_column更新数据库字段。
但是之前一直用的 update_attribute ,结果出现了一个诡异的错误。使用update_column就不会出现这个问题。
那么 update_attribute 和 update_column 什么区别呢?
简单的说 update_attribute 会验证数据是否符合程序员的意图。
而update_column则不会,他会直接生成sql语句执行,不管插入的数据是否符合程序员的意图。
知道了为什么。。尼玛。。。我根本没写任何验证, update_attribute 就是无法插入数据(只能插入0,1.可能是之前是布尔型,后来改成int型,导致rails生成了缓存,导致插入大于1的值?)
Rails update_column vs update_attribute
原文:http://my.oschina.net/moli/blog/373368