Ruby on rails rails 4--即时通知

Ruby on rails rails 4--即时通知,ruby-on-rails,ruby,twitter-bootstrap,ruby-on-rails-4,Ruby On Rails,Ruby,Twitter Bootstrap,Ruby On Rails 4,我还在我的rails 4演示站点上工作,我看到了一件奇怪的事情。在控制器中,它有这样一条线: format.html { redirect_to @widget, notice: 'Widget was successfully created.' } 这将在重定向页面中呈现一条flash消息,这是预期的。但是,附加到message div的css类是警报通知,而不是有效的引导警报类,如警报信息 为这个flash设置的类在哪里,我如何自定义它 另外,如果我要通过ajax删除记录,是否有方法访问

我还在我的rails 4演示站点上工作,我看到了一件奇怪的事情。在控制器中,它有这样一条线:

format.html { redirect_to @widget, notice: 'Widget was successfully created.' }
这将在重定向页面中呈现一条flash消息,这是预期的。但是,附加到message div的css类是
警报通知
,而不是有效的引导警报类,如
警报信息

为这个flash设置的类在哪里,我如何自定义它

另外,如果我要通过ajax删除记录,是否有方法访问核心flash容器以通过js显示消息,或者我是否必须仅为ajax请求显示/隐藏自己的flash message div

编辑:我的迈克尔·哈特尔灵感
layouts/application.html.erb

<div class="container">
  <% flash.each do |key, value| %>
    <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>
  <%= yield %>
</div>

谢谢

编辑2:


也许我最初的问题不够清楚。我完全理解在这种情况下如何在flash对象中设置类。我有兴趣学习如何使用和自定义
块中的
注意:
。看来应该有办法通过这个通知通过一门课?或者这不是Rails的核心工作方式吗?

application.html.erb
中,您将显示
flash
消息

更新代码如下

  <% flash.each do |name, msg| %>
    <%= content_tag :div, msg, class: "alert alert-info" %>
  <% end %>
编辑#2

format.html{重定向到@widget,注意:“widget已成功创建”。}

注意:“小部件已成功创建。”
是传递给
redirect\u to
方法的参数。在该方法中,它被添加到
flash
散列中。

将其添加到

app/controllers/application_controller.rb 然后你可以在你的控制器里做这件事

format.html { redirect_to @widget, success: 'Widget was successfully created.' }
如果你在布局中这样做的话

<div class="container">
  <% flash.each do |key, value| %>
    <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>
  <%= yield %>
</div>

如果您不想像@Sachin Mour指出的那样弄乱您的
应用程序控制器
,您只需添加一些额外的CSS类别,相应地:

app/assets/stylesheets/custom.scss
中:

/*flash*/
.alert-error {
    background-color: #f2dede;
    border-color: #eed3d7;
    color: #b94a48;
    text-align: left;
 }

.alert-alert {
    background-color: #f2dede;
    border-color: #eed3d7;
    color: #b94a48;
    text-align: left;
 }

.alert-success {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    color: #468847;
    text-align: left;
 }

.alert-notice {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    color: #468847;
    text-align: left;
 }

逐步教程,如何使用Desive和bootstrap处理flash消息,您可以找到取决于您的视图的

。查看您的
views/layouts/application.html.*
文件,查看它在哪里呈现
flash
内容。但是警报通知是有效的引导类。在重定向操作之前,您可能需要从资产中删除scaffold.css,因为它会扰乱一些引导,所以您可以随时刷新[:yourchoiceofalert]classes@StavrosSouvatzis----我不认为警报通知是有效的类。我错过什么了吗?而且,我的资产中没有scaffold.css。谢谢是的,对不起,通知不是一种情况,我想指出的是,你需要像“alert alert-‘class’”这样的单词alert。很抱歉误导你,我应该这么做。谢谢,我意识到这就是为什么申请这门课的原因。我想我是在问
注意:
如何在
格式
块中工作,以及如何访问它并将其转换为
闪存
,而不是传递
闪存
对象。对不起,我只是指
格式.html
块--
注意:
元素是如何解释的,在哪里?如何为flash设置自定义类?@user101289请参见编辑#2部分的
注意:元素得到解释,
问题。如果您有更多问题,请将其作为新问题发布。留下评论供当前问题讨论,例如,
为该flash设置的类在哪里,以及如何自定义它?
以下是
添加flash类型的文档
<div class="container">
  <% flash.each do |key, value| %>
    <div class="alert alert-<%= key %>"><%= value %></div>
  <% end %>
  <%= yield %>
</div>
/*flash*/
.alert-error {
    background-color: #f2dede;
    border-color: #eed3d7;
    color: #b94a48;
    text-align: left;
 }

.alert-alert {
    background-color: #f2dede;
    border-color: #eed3d7;
    color: #b94a48;
    text-align: left;
 }

.alert-success {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    color: #468847;
    text-align: left;
 }

.alert-notice {
    background-color: #dff0d8;
    border-color: #d6e9c6;
    color: #468847;
    text-align: left;
 }