gpt4 book ai didi

devise - 将设计闪存消息从通知更改为错误

转载 作者:行者123 更新时间:2023-12-02 07:37:01 25 4
gpt4 key购买 nike

我知道您可以覆盖默认的设计 Controller ,我为注册和 session Controller 这样做了。我知道您还可以在 locale 下的 devise 中更改 flash 消息的文本。但是,当用户名和密码组合无效时,我不确定如何更改为 session Controller 显示的闪存消息类型。

创建方法看起来像

def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end

我怀疑验证是在后续调用期间完成的

warden.authenticate!(auth_options) 

但这是我不确定如何在我的应用程序中覆盖它的地方。

此外,我认为对于更改 Flash 通知颜色这样一个简单的用例来说,这是一个复杂的覆盖。

如有任何见解,我们将不胜感激。

谢谢!尼克

最佳答案

您可以使用自定义故障应用来完成。如您所见,这条闪现信息设置正确 here因此,您可以在自定义故障应用程序中更改它。

因此,一开始您从 Devise 的应用程序中继承了失败的应用程序:

class CustomFailure < Devise::FailureApp
def recall
env["PATH_INFO"] = attempted_path
flash.now[:error] = i18n_message(:invalid)
self.response = recall_app(warden_options[:recall]).call(env)
end
end

将此文件放在您的应用中的某处,然后说 Devise 以这样使用它 (config/initializers/devise.rb):

config.warden do |manager|
manager.failure_app = CustomFailure
end

关于devise - 将设计闪存消息从通知更改为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15305586/

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