मैं products_controller_spec.rb में यह कल्पना लिखा है में न के बराबर रिकॉर्ड प्राप्त करने के लिए, कि एक रीडायरेक्ट का परीक्षण करने का इरादा है जब नष्ट किसी गैर-मौजूद रिकॉर्ड पर कहा जाता है:RecordNotFound उठाया जब find_by_id का उपयोग कर RSpec
it "deleting a non-existent product should redirect to the user's profile page with a flash error" do
delete :destroy, {:id => 9999}
response.should redirect_to "/profile"
flash[:error].should == I18n.t(:slideshow_was_not_deleted)
end
यहाँ products_controller.rb में नियंत्रक कार्रवाई है:
अब, मैं कल्पना पहली बार पारित करने के लिए उम्मीद नहीं थी लेकिन मुझे समझ नहीं आता क्यों यह इस के साथ नाकाम रहने है:
Failure/Error: delete :destroy, {:id => 9999}
ActiveRecord::RecordNotFound:
Couldn't find Product with id=9999
मैं इस धारणा के तहत था कि #find_by_id एक गैर-मौजूदा रिकॉर्ड पर RecordNotFound त्रुटि वापस नहीं करेगा। तो मुझे एक क्यों मिल रहा है? अग्रिम में धन्यवाद!
रेल का कौन सा संस्करण आप उपयोग करते हैं? यह 'find_by_id' रेल 3.2.3 के साथ ठीक काम करता है। (रिकॉर्ड नॉटफाउंड बढ़ाने के बजाए शून्य लौट रहा है) – Deradon
3.2.2 यहां। मुझे उस find_by_id को ब्राउज़र में जोड़ना चाहिए। मैं केवल spec परिणामों में RecordNotFound प्राप्त कर रहा हूँ। – theflyingbrush
- दरअसल, एक गैर-मौजूदा रिकॉर्ड पर एक शो एक्शन के साथ ब्राउजर में बस कोशिश की और रिकॉर्ड नॉटफाउंड मिला। जब मैंने नियंत्रक में कैनकन प्रमाणीकरण की टिप्पणी की तो दूर चला गया। ऐसा लगता है कि कैनकन आरएनएफ – theflyingbrush