gpt4 book ai didi

ruby-on-rails - 设计重置密码。不重定向,发回Ajax成功?

转载 作者:行者123 更新时间:2023-12-02 03:22:48 28 4
gpt4 key购买 nike

Rails 新手。有个问题。

使用 Devise 请求更改密码后,它想重定向到某个路径。我已经使用以下方法覆盖了这条路径:

protected def after_sending_reset_password_instructions_path_for(resource_name)
root_path
end

然而,这真的是一个权宜之计,直到我弄清楚如何让 JSON 对象传回我现在使用 AJAX 的忘记密码页面。在发送重置密码指令而不是重定向后,有没有办法将 JSON 对象传回调用忘记页面?

编辑:

添加了 PasswordsController 及其外观:
class Portal::PasswordsController < Devise::PasswordsController
def create
super
end
end

再次感谢。

最佳答案

所以这就是我最终要做的。

首先,我查看了设计源代码,如果电子邮件无法发送,它似乎很难重定向(3.5.1)或返回到忘记密码。

因此,我认为就自然而然地从 Devise 中获取 JSON 而言,我是在找错树。

所以我的解决方案是模仿 Devise 的做法,以这种方式:

class Portal::PasswordsController < Devise::PasswordsController
respond_to :json, only: [:create]

def create
user = User.send_reset_password_instructions(params.fetch(:user))

if successfully_sent?(user)
render json: { data: "something" }, status: 200
else
render json: { data: "something bad" }, status: 400
end
end
end

如果成功,这似乎仍然会使用 token 和日期信息更新数据库和用户记录。

当然,我不喜欢这样做;我宁愿 AJAX 开箱即用,但它就是这样。

希望有帮助。

关于ruby-on-rails - 设计重置密码。不重定向,发回Ajax成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32192808/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com