Flash消息Rails 4-无法正常显示 - 索引和视图

时间:2014-04-08 01:16:54

标签: ruby-on-rails flash ruby-on-rails-4

我已将以下内容添加到我的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消息?

1 个答案:

答案 0 :(得分:1)

你的问题让我困惑,大概是因为我们对flash message的含义有不同的解释 -

  

来自Rails documentation

     

闪存是会话的一个特殊部分,每个部分都会被清除   请求。这意味着存储在那里的值只能在   下一个请求,对于传递错误消息等很有用。

我认为您的问题不是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。你可能正在寻找什么?