2011-09-19 33 views
5

ile test etme Rails'de iç içe geçmiş kaynakları için testler oluşturmaya çalışıyorum. İlgili güzergah tanımı şöyledir: RSpec ve factory_girl kullanmaİç içe kaynakları RSpec

resources :communities do 
    resources :contents, :type => 'Content' 
end 

, ben mesela ile testini çalışıyorum

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 

Bu istekler hep RSpec ile iç içe bir kaynak için bir rota belirlemek için bir yol bulamıyorum Beni hayat için

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"} 

sonuçlanabilir. Burada yanlış bir şey mi yapıyorum?

Güncelleme: Ben siz content.community.id geçiyoruz görüyoruz

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"} 
+0

hangi rake rotalarını gönderirsiniz | grep toplulukları size verir? – corroded

+0

Özgün soru için güncellendi. – Sami

+2

Bu garip görünen bir kimlik. Fabrika tanımında neler olduğunu gösterebilir misin? – zetetic

cevap

3

: tırmık yollarının ilgili kısmı olan topluluk_kimliği ve bu nesne tanımlanır bir Mongo dokümanı gibi görünse bir BSON :: ObjectId ile. Bunun yerine aşağıdaki gibi to_param kullanmayı deneyin:

get :show, :community_id => content.community.to_param, :id => content.to_param