所以,我有一些简单的用户模型和更新密码的表格。
@user.update_attributes(:password=>params[:password])
但这没有用,我想通了:
User Load (1.0ms) SELECT "users".* FROM "users" WHERE "users"."auth_token" = 'z7KU4I0IXLjiRMpdF6SOVQ' LIMIT 1
User Load (0.0ms) SELECT "users".* FROM "users" WHERE "users"."password_reset_token" = 'aMOjTN0ikPUOJo2JMVoDtQ' LIMIT 1
(0.0ms) BEGIN
User Exists (1.0ms) SELECT 1 AS one FROM "users" WHERE (LOWER("users"."email") = LOWER('somemail@mail.ru') AND "users"."id" != 1) LIMIT 1
(0.0ms) ROLLBACK
Redirected to http://localhost:3000/edit_user_by_reset?reset_token=aMOjTN0ikPUOJo2JMVoDtQ
通过第三次选择,我可以看出,这是唯一性验证失败!这就是 ROLLBACK 的原因。但这没有意义,当然DB中有这样的行,因为它是UPDATE动作。我该怎么办?我不想通过:validate=>false
这里。