flash 显示“您已经登录”的原因是因为用户被重定向到new_session_path
该after_resending_confirmation_instructions_path_for
方法。我将覆盖此方法以检查他们是否已登录。如果已登录,则不要重定向到new_session_path
,设置您的 Flash 消息并重定向到另一个页面。
通过将其放入来覆盖确认控制器controllers/users/confirmations_controller.rb
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
将您的确认控制器添加到路由->
devise_for :users, :controllers => {:confirmations => 'users/confirmations' }