Rails3のflashの新記法ではまった
Rails3のredirect_toで:noticeオプションを付けることでflashを使えるようになった。
ということで
flash[:notice] = 'message' redirect_to :action => 'index'
と書いていたものを
redirect_to {:action => 'index'}, :notice => 'message'
と修正したのだがこのままだとエラーになってしまう。
ネットで調べると、どうやら引数で渡したハッシュの「{」記号がブロックとして解釈されてしまうらしい。
redirect_to ({:action => 'index'}, :notice => 'message')
このように引数全体をカッコで括ってもだめ。
結局以下の書き方が正解だった。
redirect_to ({:action => 'index'}), :notice => 'message'
とても気持ち悪いけど仕方ないのかな?