设计中禁用响应者gem flash消息

时间:2014-04-08 19:51:09

标签: ruby-on-rails devise

我们在项目中运行了devise和responders gem。我们已删除了signed_in和signed_up flash消息,如下所述:Rails Disable devise flash messages

config / locales / devise.en.yml的相关部分:

devise:
  sessions:
    signed_in: ''
    signed_out: ''

但是现在登录闪光灯时我们收到的是“用户已成功创建”。我们已将此追溯到响应者宝石。这是我们的config / locales / responders.en.yml文件:

en:
  flash:
    actions:
      create:
        notice: '%{resource_name} was successfully created.'
      update:
        notice: '%{resource_name} was successfully updated.'
      destroy:
        notice: '%{resource_name} was successfully destroyed.'
        alert: '%{resource_name} could not be destroyed.'

我明白为什么会说用户是创建的(设计会话是用用户的资源创建的)但是我到目前为止所尝试的所有内容都没有删除该消息(没有删除整个响应者宝石)。

我已经尝试将一些带有空消息的特定条目添加到responders.en.yml文件中:

en:
  flash:
    actions:
      create:
        notice: '%{resource_name} was successfully created.'
      update:
        notice: '%{resource_name} was successfully updated.'
      destroy:
        notice: '%{resource_name} was successfully destroyed.'
        alert: '%{resource_name} could not be destroyed.'
    users:
      create:
        notice: ''
        success: ''
    sessions:
      create:
        notice: ''
        success: ''

但我们仍然得到相同的“用户已成功创建。”登录时闪烁消息。

Rails:4.0.4 设计:3.2.2 响应者:1.0.0

如何在用户登录并创建会话时禁用此Flash消息?

2 个答案:

答案 0 :(得分:4)

我刚刚遇到过这个问题,我想我应该回答一下这个问题。你真的很接近你的尝试,但是嵌套有点错误。

en:
  flash:
    actions:
      create:
        notice: '%{resource_name} was successfully created.'
        alert: '%{resource_name} could not be created.'

      ...your other responders here...

    devise:
      sessions:
        create:
          notice: ''

与您的问题唯一真正的区别是sessions嵌套在devise下。

祝你好运!

答案 1 :(得分:3)

只是为了补充周杰伦的答案。如果要覆盖Devise的SessionsController,则必须删除语言环境文件中的设计密钥。所以它将是:

en:
  flash:
    actions:
      create:
        notice: '%{resource_name} was successfully created.'
        alert: '%{resource_name} could not be created.'
        ...your other responders here...

    sessions:
      create:
        notice: ''