0

我想event_calendar_path使用“下个月”链接将用户重定向到它提前几个月的时间,该链接显示一条闪存消息,上面写着“你不能提前超过 6 个月”。

我想将其显示为错误消息,但没有显示。我尝试使用:notice、:info、:error,但实际上只显示:notice。

这是我的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",但后来我对其进行了更改以确保使用该表单显示消息不是问题,但我仍然无法显示它。

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

谢谢。

4

3 回答 3

0

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

于 2012-05-17T15:05:48.690 回答
0

看着:

http://guides.rubyonrails.org/action_controller_overview.html#the-flash

flash.now

于 2012-05-17T10:57:01.447 回答
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
于 2012-05-18T05:27:19.910 回答