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

そして、これはフラッシュメッセージを表示するために私がしていることです:

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と機能しますが、それ以外の場合はメッセージが表示されません。以前は short form を使用して:notice => "Message"いましたが、そのフォームを使用してメッセージを表示しても問題がないことを確認するために変更しましたが、まだ表示できません。

この動作の原因は何ですか? どうすれば修正できますか?

ありがとう。

4

3 に答える 3

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 に答える
0

見る:

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

フラッシュ.ナウ

于 2012-05-17T10:57:01.447 に答える
0

:error/:info キーをコントローラーのフィルターまたはレイアウトの前の他の場所でフラッシュから抽出していないことを確認していますか?

于 2012-05-17T15:05:48.690 に答える