Ruby on rails rails 4--即时通知
我还在我的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删除记录,是否有方法访问
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;
}