首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将devise flash消息从通知改为错误

将devise flash消息从通知改为错误
EN

Stack Overflow用户
提问于 2013-03-09 08:17:37
回答 1查看 2.8K关注 0票数 2

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

create方法如下所示

代码语言:javascript
运行
复制
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

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

代码语言:javascript
运行
复制
warden.authenticate!(auth_options) 

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

另外,我认为对于改变flash通知颜色这样一个简单的用例来说,它是一个复杂的替代。

任何见解都将不胜感激。

谢谢!尼克

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-10 01:06:30

您可以使用自定义失败应用程序来完成此操作。正如你所看到的,这条闪光消息设置了正确的here,所以你可以在你的自定义失败应用程序中对其进行更改。

所以首先,你继承了Devise的failure应用:

代码语言:javascript
运行
复制
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 to use it like this (config/initializers/devise.rb):

代码语言:javascript
运行
复制
config.warden do |manager|
  manager.failure_app = CustomFailure
end
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15305586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档