gpt4 book ai didi

ruby-on-rails - Twitter Bootstrap 默认的 Flash 消息的自定义类和格式

转载 作者:行者123 更新时间:2023-12-03 10:07:48 24 4
gpt4 key购买 nike

我正在将 twitter bootstrap css 集成到我的应用程序中。进行得很好,但我不知道如何为我的 flash 消息自定义 css 和包装器。

我希望我的 flash 消息使用默认的 Bootstrap 类进行格式化:

    <div class="alert-message error">
<a class="close" href="#">×</a>
<p><strong>Oh snap!</strong> Change this and that and <a href="#">try again</a>.</p>
</div>

目前我输出我的闪存消息:
<% flash.each do |name, msg| %>
<%= content_tag :div, msg, :id => "flash_#{name}" %>
<% end %>

有没有一种简单的方法来运行一个小开关,使 :notification 或其他 rails flash 消息映射到 bootcamp 中的类,比如 info?

最佳答案

我对 Bootstrap 2.0 的回答始于@Railslerner 的有用回答,但在部分中使用了不同的代码。

app/helpers/application_helper.rb (与@Railslerner 的回答相同)

module ApplicationHelper
def flash_class(level)
case level.to_sym
when :notice then "alert alert-info"
when :success then "alert alert-success"
when :error then "alert alert-error"
when :alert then "alert alert-error"
end
end
end

的某个地方app/views/layouts/application.html.erb :
<%= render 'layouts/flash_messages' %>

应用程序/ View /布局/_flash_messages.html.erb
<div>
<% flash.each do |key, value| %>
<div class="<%= flash_class(key) %> fade in">
<a href="#" data-dismiss="alert" class="close">×</a>
<%= value %>
</div>
<% end %>
</div>

差异:
  • 每次调用时不会循环遍历不同的错误级别。
  • 相反,如果散列包含消息(遵循
    approach in Michael Hartl's Rails Tutorial )。
  • 不使用 <p>标签,no longer required在 Bootstrap 2.0 中。

  • 请记住包含 bootstrap-alert.js,以便淡入淡出和关闭功能起作用。如果您使用的是 bootstap-sass gem,请将此行添加到 应用程序/ Assets /javascripts/application.js :
    //= require bootstrap-alert

    2012 年 8 月 9 日更新:文件夹已更新。我实际上把除了助手之外的所有东西都放在 下应用程序/ View /布局自从 flash_messages仅用于 app/views/layouts/application.html.erb .

    2015 年 6 月 5 日更新:更新到 Rails 4.2 后,我发现 level (至少有时)以字符串的形式出现,并且无法匹配 ApplicationHelper 中的 case 语句。将其更改为 level.to_sym .

    关于ruby-on-rails - Twitter Bootstrap 默认的 Flash 消息的自定义类和格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8705590/

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