This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/146
Ruby on Railsには、IntegrationTestを行う機能がありますが、このIntegrationTestの中でrender_componentを呼び出す処理を行う場合に、
No action responded to XXXXX
というエラーが出てしまうという現象が発生して困っていました。
FunctionalTestや実際の運用環境では問題なく動作するのですが、IntegrationTestの場合は上記のエラーが出てしまうんですよね。
色々調べてみても原因が突き止められなかったのですが、思いがけないところから解決の糸口を発見する事ができました。
ちょうどEdgeRailsとRuby-GetText-Packageの問題の解決策を調べていたのですが、この角谷さんの投稿を見てでピンと来ました。
ENV['REQUEST_URI'] = url_for('controller' => 'foo', 'action' => 'bar')
render_component 'controller' => 'foo', 'action' => 'bar'
これでOKでした。角谷さんありがとうございます。
注: この方法がうまく行くのは、いまのところEdgeRailsだけのようです。
This article was migrated from http://rails.office.drecom.jp/takiuchi/archive/146