5
Rails에서 중첩 된 리소스에 대한 테스트를 만들려고합니다. 관련 경로의 정의는 다음과 같습니다 RSpec에와 factory_girl를 사용RSpec을 사용하여 중첩 된 리소스 테스트
resources :communities do
resources :contents, :type => 'Content'
end
, 내가 예와 테스트를 시작하려합니다
describe ContentsController do
it 'should display a content item under a community' do
content = FactoryGirl.create(:content)
get :show, :community_id => content.community.id, :id => content.id
end
end
이러한 요청은 항상 내가 RSpec에와 중첩 된 리소스 경로를 지정하는 방법을 찾을 수없는 내 인생에 들어
Failure/Error: get :show, :community_id => content.community.id, :id => content.id
ActionController::RoutingError:
No route matches {:community_id=>BSON::ObjectId('4e7773c6ac54c3d1ad000002'),
:id=>BSON::ObjectId('4e7773c6ac54c3d1ad000001'), :controller=>"contents",
:action=>"show"}
초래한다. 근본적으로 뭔가 잘못하고있는 것입니까?
업데이트 : 난 당신이로 content.community.id을 전달하는 것을 볼
community_contents GET /communities/:community_id/contents(.:format) {:action=>"index", :controller=>"contents"}
POST /communities/:community_id/contents(.:format) {:action=>"create", :controller=>"contents"}
new_community_content GET /communities/:community_id/contents/new(.:format) {:action=>"new", :controller=>"contents"}
edit_community_content GET /communities/:community_id/contents/:id/edit(.:format) {:action=>"edit", :controller=>"contents"}
community_content GET /communities/:community_id/contents/:id(.:format) {:action=>"show", :controller=>"contents"}
PUT /communities/:community_id/contents/:id(.:format) {:action=>"update", :controller=>"contents"}
DELETE /communities/:community_id/contents/:id(.:format) {:action=>"destroy", :controller=>"contents"}
당신이 무엇 레이크 경로를 게시 할 수 있습니다 | grep 커뮤니티가 제공합니까? – corroded
원래 질문으로 업데이트되었습니다. – Sami
이상한 찾고 이드입니다. 공장 정의에서 어떤 일이 일어나는지 보여줄 수 있습니까? – zetetic