【发布时间】:2011-10-20 20:02:23
【问题描述】:
我有一个带有名称和设置的简单用户模型。每次保存用户 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 时不会更新其他字段。这是预期的行为吗?为什么要执行更新?如果序列化的内容没有改变,是否可以关闭不改变?我已经上传了用于创建最小案例的示例项目:
【问题讨论】:
-
如果在上面第一行之后立即调用
user.changes,它的输出是什么?如果您为属性指定一个类怎么办,例如serialize :settings, Hash? -
@Jordan 指定
Hash没有帮助。User.changes返回一个空的哈希值。
标签: ruby-on-rails ruby