Flash消息未显示(仅限:通知)

时间:2012-05-17 10:28:15

标签: ruby-on-rails ruby-on-rails-3 haml

我希望将用户重定向到event_calendar_path时,使用“下个月”链接会显示“你不能超过6个月”的消息提前几个月。

我想将其显示为错误消息,但不会显示。我尝试过:notice,:info,:error,但仅限:通知实际显示。

这就是我在application.html.haml文件中的内容:

- flash.each do |key, msg|
  - if key == :notice
    .alert.alert-success= msg
  - elsif key == :error
    .alert.alert-error= msg
  - elsif key == :info
    .alert.alert-info= msg
  - else
    .alert.alert-block= msg

这就是我正在做的显示flash消息:

if @current_month > Date.today.month + 6
  flash[:error] = "You cannot go more than 6 months ahead"
  redirect_to event_calendar_path @event_calendar, :group_id => @group.id
  return
end

如果我用通知替换:error它会起作用,否则我没有收到任何消息。 在我使用简短形式:notice => "Message"之前,我改变它以确保使用该表单显示消息不是问题,但我仍然无法显示它。

这种行为的原因是什么? 我该如何解决?

感谢。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

你确定你没有从过滤器或布局之前的控制器其他地方的闪存中提取你的:error /:info键吗?

答案 2 :(得分:0)

你能尝试为两者提供相同的html类属性吗?也许你的客户端逻辑隐藏了错误信息?

所以,而不是:

- if key == :notice
  .alert.alert-success= msg
- elsif key == :error
  .alert.alert-error= msg

尝试:

- if key == :notice
  .alert.alert-success= msg
- elsif key == :error
  .alert.alert-success= msg