Flash不是第一次出现,但在页面刷新时出现

时间:2015-09-02 14:08:57

标签: ruby-on-rails

我有一段代码检查表单中提交的日期是不一样的:

if params[:statement_end_date] > params[:statement_start_date] 
  flash[:notice] = "End date cannot be greater than start date."
  puts "salary report saved #{flash[:notice]}"
  redirect_to 'statements/listing'

问题是当我输入两个相同的日期时,页面被渲染但没有闪光。当我刷新页面或转到另一页时,闪光灯会出现。

1 个答案:

答案 0 :(得分:0)

根据Ruby on Rails Guide

  

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

换句话说,闪存通知永远不会出现在您生成时正在查看的视图上。它将始终显示在下一个视图中。

如果您想在同一视图上显示消息,则必须创建一个partial view,根据您的if params[:statement_end_date] > params[:statement_start_date]条件重新绘制视图中的“状态”div。 / p>