ruby-on-rails – Ruby on Rails每次都会触发序列化属性的更新
发布时间:2020-12-17 02:53:15 所属栏目:百科 来源:网络整理
导读:我有一个简单的用户模型,其中包含名称和设置.每次保存用户后,AREL都会对设置列执行更新.例如: user = User.find_by_name('kevin')user.save(0.3ms) UPDATE "users" SET "updated_at" = '2011-10-20 19:58:06.363541',"settings" = '--- {}' WHERE "users"."
我有一个简单的用户模型,其中包含名称和设置.每次保存用户后,AREL都会对设置列执行更新.例如:
user = User.find_by_name('kevin') user.save (0.3ms) UPDATE "users" SET "updated_at" = '2011-10-20 19:58:06.363541',"settings" = '--- {}' WHERE "users"."id" = 1 调用save时,没有其他字段更新.这是预期的行为吗?为什么要执行更新?如果序列化内容没有改变,是否可以关闭不更改?我上传了用于创建最小案例的示例项目: http://cl.ly/0p0j3Z3Y0L1x1I1p3Z0g 解决方法
这是预期的行为.检测序列化属性中的更改非常困难,因此每次保存时都会更新它们.
考虑以下(ruby 1.8.7)irb会话: ruby-1.8.7-p352 :001 > x = "--- n:b: 2n:a: 1n" => "--- n:b: 2n:a: 1n" ruby-1.8.7-p352 :002 > y = "--- n:a: 1n:b: 2n" => "--- n:a: 1n:b: 2n" ruby-1.8.7-p352 :003 > x == y => false ruby-1.8.7-p352 :004 > YAML.load(x) == YAML.load(y) => true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |