クライミング好きプログラマーのプログラミング日記

2009-02-09

flash[:notice]のワナ?

flash[:notice]は現在のアクション(リクエスト)から次のアクション(リクエスト)まで保持され、

その後削除されるのは素敵なんだけど、何も考えずに使っていると

削除されずに残っているような錯覚におちいります。

具体的には

新しいレコードの作成時、

createアクションでエラーが起こる。

 flash[:notice]= "保存に失敗"
 render :action=>"new"

これで新規作成ページにエラー文字が表示され、

この時点でflash[:notice]は次のアクション呼び出しまで保持される。

そしてここでユーザが新しいレコードの作成をやめindexに戻ってしまうと、

index画面に「保存に失敗」の文字列が表示されてしまう。

これはflashが現在のアクション(create)から次のアクション(index)まで値を

保持するため起こります。

このような事を起こさないためにRailsでは現在のアクションのみ有効なflash.nowを

使う必要があります。

 renderの場合は現在のアクション内のみ保持されるflash.now[notice]
 redirect_toの場合は次のアクションまで保持されるflash[:notice]

となります。

※現在のアクション、次のアクションの「アクション」はリクエストと同じ意味で

ここでは使っています。

↓最後まで読んで下さった方ありがとうございます。ブログランキングへクリックして頂けるとうれしいです。

にほんブログ村 IT技術ブログへ
にほんブログ村

mail6mail6 2009/02/24 13:16 突然ですが、コミュニケーションサイトを運営しております。
p-netbanking と申します。当サイトでは、
「人気ブログをランキング」を重要なテーマとし、
ブロガーの方々の、コミュニケーションの場を提供すると同時に、
どなたでも無料で参加でき、よりエンターテイメントに、
気軽に立ち寄れるサイトを目指し、日々、努力をしています。
貴ブログ様のご登録の御願いにコメント欄を
お借りしてご案内をいたしました。
是非とも、貴ブログのご登録、及び、
ランキング参加を御願いできれば幸いです。
こちらのサイトです。
http://www.p-netbanking.jp
検索バー横にブログ登録フォームがあります。
また、検索サイト・ランキングサイト等より訪問しております。
重複してご案内になりましたらお詫び申し上げます。
なお、全く興味のない方は、削除してください。
失礼いたします。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証