2011-09-19 13 views
5

के साथ नेस्टेड संसाधनों का परीक्षण करना मैं रेल में नेस्टेड संसाधनों के लिए परीक्षण बनाने की कोशिश कर रहा हूं। प्रासंगिक मार्ग परिभाषा है:आरएसपीसी

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

RSpec और factory_girl का उपयोग करना, मैं जैसे के साथ परीक्षण के साथ आरंभ करने के लिए कोशिश कर रहा हूँ

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 

इन अनुरोधों हमेशा

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

में परिणाम मुझे के जीवन के लिए मैं RSpec के साथ एक नेस्टेड संसाधन के लिए एक मार्ग निर्दिष्ट करने के लिए एक तरह से नहीं मिल रहा। क्या मैं यहां कुछ मौलिक रूप से गलत कर रहा हूं?

अद्यतन: रेक मार्गों में से प्रासंगिक हिस्सा है:

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

क्या आप रेक रेक पोस्ट कर सकते हैं | grep समुदाय आपको देता है? – corroded

+0

मूल प्रश्न के लिए अपडेट किया गया। – Sami

+2

यह एक अजीब लग रही आईडी है। क्या आप कारखाने की परिभाषा में क्या चल रहा है दिखा सकते हैं? मॉडल pls में फैक्टरी परिभाषा और नेस्टेड संसाधन कोड के लिए – zetetic

उत्तर

3

मुझे लगता है कि आप के रूप में content.community.id गुजर रहे हैं: community_id और उस वस्तु एक मोंगो दस्तावेज है कि पहचान की है की तरह लग रहा एक बीएसओएन :: ऑब्जेक्टआईडी के साथ। निम्नलिखित के रूप में to_param का उपयोग करने का प्रयास करें:

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