私は自分のテストの準備をするための簡単なテストプロジェクトを作成しています。私はネストされたリソースにかなり慣れていません。私の例では、ニュースアイテムがあり、各ニュースアイテムにはコメントがあります。
ルーティングは次のようになります。
resources :comments
resources :newsitems do
resources :comments
end
現在、コメントの機能テストを設定していますが、いくつか問題が発生しました。
これにより、ニュースアイテムのコメントのインデックスが取得されます。@newsitemはcのセットアップで宣言されます。
test "should get index" do
get :index,:newsitem_id => @newsitem
assert_response :success
assert_not_nil assigns(:newsitem)
end
しかし、問題はここ、「新しくなるべき」にあります。
test "should get new" do
get new_newsitem_comment_path(@newsitem)
assert_response :success
end
次のエラーが発生します。
ActionController::RoutingError: No route matches {:controller=>"comments", :action=>"/newsitems/1/comments/new"}
しかし、ルートテーブルを調べると、次のことがわかります。
new_newsitem_comment GET /newsitems/:newsitem_id/comments/new(.:format) {:action=>"new", :controller=>"comments"}
名前パスやここで間違っていることを使用できませんか?
前もって感謝します。