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]
となります。
※現在のアクション、次のアクションの「アクション」はリクエストと同じ意味で
ここでは使っています。
↓最後まで読んで下さった方ありがとうございます。ブログランキングへクリックして頂けるとうれしいです。
トラックバック - http://d.hatena.ne.jp/gac777/20090209/1234187881
リンク元
- 8 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=0f2&q=checkbox+値&btnG=検索&lr=lang_ja
- 7 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GZEZ_jaJP253JP254&q=サーバーを借りる 注意
- 6 http://money-nagare.com/
- 4 http://reader.livedoor.com/reader/
- 3 http://www.google.co.jp/search?hl=ja&client=firefox-a&channel=s&rls=org.mozilla:ja:official&hs=yh4&q=rails+form_for+hidden&btnG=検索&lr=lang_ja
- 3 http://www.google.co.jp/search?sourceid=navclient&aq=h0&oq=&hl=ja&ie=UTF-8&rlz=1T4ADBR_jaJP301JP303&q=画面キャプチャー方法
- 2 http://72.14.235.132/search?q=cache:mHBZ-Dy1DNcJ:d.hatena.ne.jp/gac777/20081121/1227215736+ubuntu+rails+??????&hl=ja&ct=clnk&cd=1&gl=jp&lr=lang_ja&client=firefox-a
- 2 http://search.yahoo.co.jp/search?p=C++/GetCurrentProcessIdの使い方&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 2 http://www.google.co.jp/hws/search?q=画像+キャプチャ+C++Builder&client=fenrir&safe=off&adsafe=off&hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&start=10&br=
- 2 http://www.google.co.jp/search?hl=ja&as_qdr=all&q=Windows C++ +グラフィック アクセラレーター&lr=