【问题标题】:Ruby on Rails 4 When does devise call require_no_authentication method?Ruby on Rails 4 何时设计调用 require_no_authentication 方法?
【发布时间】:2016-07-29 03:29:42
【问题描述】:

我在使用 devise 时遇到消息问题:

1.我不想在登录后显示警报并重定向到管理员的首页

2.我覆盖了设计的require_no_authentication方法

  def require_no_authentication
    super
    flash.delete :alert
  end

3.如果:我登录时删除了一个帐户(使用软删除,deleted_at != nil)。它不会为我显示警报无效(“您的帐户已删除”)。我想保留此警报

4.我有如下解决方案:

  def require_no_authentication
    super
    flash.delete :alert unless flash[:alert] ==
      I18n.t("devise.failure.admin.inactive")
  end

我无法涵盖所有​​情况下都有登录注销的闪光警报

5.我们可以有另一个实现,你能告诉我所有的案例都会调用 require_no_authentication 方法吗? 非常感谢!

【问题讨论】:

    标签: ruby-on-rails ruby devise alert


    【解决方案1】:

    要删除特定的警报很容易,您只需在 devise.en.yml 文件或相应的翻译文件中取消设置特定的警报消息,如下所示。

    sessions:
      signed_in: ''
    

    检查一下你在哪里呈现警报。

    <% flash.each do |name, msg| %>
      <%= content_tag :div, msg, :id => "flash" if msg.length > 0 %>
    <% end %>
    

    您可以使用 css 但不推荐。

    .flash.alert:empty {
      display: none;
    }
    

    对于 require_no_authentication 方法,它是设计内部使用的 before 操作。不建议重写此方法。如果您对此解决方案有任何疑问,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多