【问题标题】:Rails/Devise how to put flash message on two lines?Rails/Devise 如何将 Flash 消息放在两行?
【发布时间】:2013-06-26 20:50:37
【问题描述】:

当用户确认时,我想在成功的 Flash 通知中使用长消息。所以我想在 devise.en.yml 上使用<br/> 在两行上显示它

我如何/在哪里可以原始或使用其他方法来做到这一点?

这是我的 yml

en:
  devise:
    confirmations:
      confirmed: "Just confirmed loremp ipsum !!!!! !<br/> To start you up, you get full access to the website for 3 days lorem ipsum lorem ipsum lorem ipsum"

我尝试在我的 flash 消息中使用 raw

<!-- Flash messages to display alerts and notices (including success messages) -->

<% flash.each do |name, msg| %>
  <% if msg.is_a?(String) %>
    <div class="alert alert-<%= name == :notice ? "success" : "error" %>">
      <a class="close" data-dismiss="alert">&#215;</a>
      <%=raw content_tag :div, msg, id:"flash_#{name}" %>
    </div>
  <% end %>
<% end %>

但 Flash 消息不理解/解释我的&lt;br/&gt;,只是在页面上写&lt;br/&gt;

【问题讨论】:

  • Rails 中没有 String 属性,它决定了 String 对象是否安全?如果是这样,您是否尝试将标题标记为安全?
  • 我是新手,所以我不太明白你在说什么。我通常使用 当我想在我的 yml 文件中包含诸如 或 之类的 html 格式标记并且它通常可以工作。但这是一个特定的问题:在设计 flash 消息时,我的标记没有被解释。
  • @Denis 你如何将标题标记为安全?

标签: ruby ruby-on-rails-3 devise


【解决方案1】:

将密钥命名为confirmed_html 或使用.html_safe 方法。

【讨论】:

    【解决方案2】:

    content_tag 很可能正在清理 html 标签。试试:

    <div id="flash_#{name}">
      <%= raw msg %>
    </div>
    

    【讨论】:

    • 它确实可以解释
      但问题是我从 中删除了 'msg' 并放入之后喜欢:,然后我得到这个 flash 消息:“{:id=>"flash_notice"}Just确认 loremp ipsum !!!!!! !首先,您可以在 3 天内完全访问该网站 lorem ipsum lorem ipsum lorem ipsum”我不想看到 {:id=>"flash_notice"}:(
    • 请注意,在我的示例中,我没有使用content_tag
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多