0

我试图在我的 Rails 应用程序上显示一些登录验证错误。

我知道我可以将错误存储在 flash 对象中并将它们转储到页面上,如下所示:

<% flash.each do |key, value| %>
    <div class="mFlash flash-<%= key %>" data-module="mFlash">
        <%= value %>
    </div>
<% end %>

但我想将它用作我的应用程序的全局部分。

该部分的定位不是我希望我的登录验证错误发生的地方。

我可以创建另一个存储在控制器操作之间的类似闪存的变量吗?(我的身份验证操作发生在呈现页面的控制器的单独控制器上)。

我真的不想做一些 hacky 之类的事情:

<% flash.each do |key, value| %>
        <div class="mFlash flash-<%= key %>" data-module="mFlash">
            <%= value unless (key == 'loginerrors')  %>
        </div>
    <% end %>
4

1 回答 1

4

我不知道创建另一个闪存,但我怀疑它最终会变得更加hacky。

为什么不只创建两个部分并过滤它们实际处理的哈希部分:

# _main_flash.html.erb
<% flash.except(:loginerrors).each do |key, value| %>
  ...
<% end %>

# _login_flash.html.erb
<% flash.slice(:loginerrors).each do |key, value| %>
  ...
<% end %>
于 2013-05-09T23:12:59.207 回答