Ruby on Rails 4何时设计调用require_no_authentication方法?

时间:2016-07-29 03:29:43

标签: ruby-on-rails ruby devise alert

使用设计时,我遇到有关消息的问题:

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

2.I覆盖方法require_no_authentication of devise

  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方法吗? 非常感谢!

1 个答案:

答案 0 :(得分:0)

要轻松删除特定警报,您只需在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方法,它是内部设计使用的之前操作。建议不要覆盖此方法。如果您对此解决方案有疑问,请告诉我。