gpt4 book ai didi

ruby-on-rails - 设计:重新发送确认电子邮件时,更改闪存消息

转载 作者:行者123 更新时间:2023-12-04 06:31:53 25 4
gpt4 key购买 nike

我正在设置 Devise,以便用户无需确认其电子邮件地址即可登录并使用该站点,类似于此 question .但是网站上有一些功能,除非他们确认,否则用户无法使用。

没关系。我可以查询 current_user.confirmed? .如果他们没有得到确认,我可以在页面上放一个按钮,让他们请求再次发送确认。

我遇到的问题是,当他们在登录时执行此操作时,他们在结果页面上看到的闪现消息是“您已经登录”。这并不理想 - 我只想发布确认已发送的消息。

我开始尝试找出 Devise::ConfirmationController 的哪种方法覆盖,以及什么,但我希望有人已经这样做了。

最佳答案

Flash 显示“您已经登录”的原因是用户被重定向到 new_session_path来自 after_resending_confirmation_instructions_path_for方法。我会覆盖这个方法来检查他们是否登录。如果他们登录,那么不要重定向到 new_session_path ,设置您的 Flash 消息并重定向到另一个页面。

通过将其放入 controllers/users/confirmations_controller.rb 来覆盖确认 Controller

class Users::ConfirmationsController < Devise::ConfirmationsController

protected

def after_resending_confirmation_instructions_path_for(resource_name)
if signed_in?
flash[:notice] = "New message here" #this is optional since devise already sets the flash message
root_path
else
new_session_path(resource_name)
end
end
end

将您的确认 Controller 添加到路由->
devise_for :users, :controllers => {:confirmations => 'users/confirmations' }

关于ruby-on-rails - 设计:重新发送确认电子邮件时,更改闪存消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904811/

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