2011-07-29 14 views
3

私はRuby on Rails 3.0.9を使用していますが、この問題が発生しました:Trouble on setting the ':controller' parameter for a 'link_to' statement。誰も解決策に答えなかったが問題を見つけようと再試行しようとしたが、私は「古いスタイル」のパラメータを渡すと(controlleractionという名前のルートパスではなくオプションを使用)、いつかlink_to doesn予想どおりに動作しません(コントローラーとルートが正しく記述されていればActionView::Template::Error - No route matchesエラーが発生します)。とにかく次のようなものを設定することができます:'ActionView :: Template :: Error - ' link_to 'ステートメントの'旧スタイル 'パラメータを渡す経路がありません

<%= link_to("New article", {:controller => '../', :action => 'new'}) %> # Note the "'../'" 

と動作します。

私はは、一般的には、それがなぜ起こるかときを知っていただきたいと思います:controllerオプションを使用すると、渡されたコントローラパラメータに相対パスまたは絶対パスを参照していないために「強制」ようだ

。私は:controller => articlesを設定し、私は次のエラーを取得するcontrollers/article/categories_controller.rbによって管理ビューファイルに上記のコードを使用している場合、ある

`ActionView::Template::Error (No route matches {:controller=>"articles/categories/articles", :action=>"new"})` 

上記の言ったように、コントローラはを参照しているようだ、ので、 /articlesパスの代わりに/articles/categoriesパスを使用してください(この例では、コントローラをarticlesに設定しているため)。それはルータの問題になりますか?

答えて

1

route.rbファイルに記載されている正しいルートがない場合、通常、「no route error」が発生します。これは、絶対パス/相対パスとは関係ありません。

関連する問題