"Catch :respond in Action#process" のパッチが通っちゃった
RedirectHelper.respond なんかを呼び出した時に Ramaze::Dispatcher::Action::FILTER が適用されない場合があったのでパッチを投げました。
Ramaze::Dispatcher::Action::FILTER << proc {|response| response.header['Cache-Control'] = 'no-store' response } class MyController < Ramaze::Controller map '/' def index respond(render_partial Rs(:partial)) end def partial "hello" end end
で、 /index の時に適用されないのが問題、というわけです。これを修正するのに Action#process で :respond を捕獲しちゃえば!というのが次のパッチ。
catch :respond in Action#process
これ影響大きそうだから、パッチの適用は待ってね!って言われたんだけど、さっき見てみたら採用されたようです。自分でパッチを投げておきながらアレですが、すごく不安です。本当にこの修正方法で大丈夫なのでしょうか。
とこで私は catch, throw を使ったRubyのプログラムを今まであまり書いたことがありません。とっても便利なのかも知れませんが、バグを生みやすそうだなぁ、と思いました。