&tim-6ren">
gpt4 book ai didi

ruby-on-rails - 如果闪存名称 == 'notice' 在 Rails View 中不工作

转载 作者:行者123 更新时间:2023-12-04 06:22:52 24 4
gpt4 key购买 nike

<% flash.each do |key, msg| %>
<% if key == 'notice' %>
<%= content_tag :div, "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> #{key}".html_safe, class: 'alert alert-success alert-dismissable' %>
<% elsif key == 'alert' %>
<%= content_tag :div, "<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;</button> #{msg}".html_safe, class: 'alert alert-danger alert-dismissable' %>
<% end %>
<% end %>

不适合我。

  • 当我做 <% if true %>它有效。
  • 当我输出 key 时, 它说 notice .

为什么它不起作用?

最佳答案

对于 Rails 4 及以下版本,flash key 是一个 Symbol 而对于 Rails 4.1,flash >key 是一个 String。我想您正在使用 Rails 4 或以下 并与它们的 String 等价物进行比较,这是您问题的根源。

可以通过两种方式解决:

  1. 将 key 从 Symbol 转换为 String,然后将其与 String noticealert 进行比较。这种方式比较好,因为以后当你将 Rails 版本升级到 4.1 时,就不会再遇到当前的问题了。

    <% if key.to_s == 'notice' %>
    <%# .. %>
    <% elsif key.to_s == 'alert' %>
    <%# ..%>
    <% end %>
  2. 直接与符号:notice:alert进行比较。这暂时有效,但在升级 Rails 版本后将无效。

    <% if key == :notice %>
    <%# .. %>
    <% elsif key == :alert %>
    <%# ..%>
    <% end %>

关于ruby-on-rails - 如果闪存名称 == 'notice' 在 Rails View 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24312407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com