我已将以下内容添加到我的HomeController(/app/controllers/home_controller.rb)中:
class HomeController < ApplicationController
def index
flash[:notice] = "wowza"
end
end
然后我将以下内容添加到我的application.html.erb文件中:
<html>
<head>
<title>FlashTest</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<p class="notice"><%= flash[:notice] %></p>
<%= yield %>
</body>
</html>
我原本期待一条flash消息说&#34; wowza&#34;会显示,但它只是说&#34; wowza&#34;在页面上的文字。如何让页面显示flash消息?
答案 0 :(得分:1)
你的问题让我困惑,大概是因为我们对flash message
的含义有不同的解释 -
闪存是会话的一个特殊部分,每个部分都会被清除 请求。这意味着存储在那里的值只能在 下一个请求,对于传递错误消息等很有用。
我认为您的问题不是flash
问题,而是问题styling
。对于Rails,Flash
基本上是一种会话cookie,在每次请求后都会消失。每次加载页面时都会加载它,并允许您输出简单的以动作为中心的消息。它与样式无关
如果您详细说明了您希望如何显示您的Flash消息,那么这将是一个很大的帮助;但与此同时,我们的工作如下:
<强>淡出强>
我们有这个代码淡出flash:
#app/assets/javascripts/application.js.coffee
flashCallback = ->
$(".notice").animate
height: 0
opacity: 0
, 350
, ->
$(this).remove()
$ ->
$(".notice").bind 'click', (ev) =>
flashCallback()
setTimeout flashCallback, 3000
这样可以在页面上显示闪光灯fade out
。你可能正在寻找什么?