设计用于Devise用户的update_email方法

时间:2016-02-22 21:18:58

标签: ruby-on-rails devise

我想要一个控制器的端点,而不是处理更新Devise用户的电子邮件。理想情况下,当用户使用当前密码提交新电子邮件时,其行为就像我提交了在Devise中打包的默认edit表单。

我已经在我的设计配置中启用了config.reconfirmable。但是,每当我尝试输入类似的内容时,

User.find(1).update_with_password(email: 'asdf@email.com', password: 'currentpass')

在rails控制台中,它会回滚数据库更新

User Exists (0.4ms)  SELECT  1 AS one FROM "users" WHERE ("users"."email" = 'asdf@email.com' AND "users"."id" != 1) LIMIT 1

当我在控制台中测试确认电子邮件时

User.find(1).send_confirmation_instructions

它按预期工作。

1 个答案:

答案 0 :(得分:0)

阅读完文档后,您必须使用 public Response intercept(Chain chain) throws IOException { Request request = chain.request(); Response response = chain.proceed(request); return response; } 作为用户密码的密钥。

current_password