2014-05-09 9 views
5

के रूप में पारित किया जा रहा है मैंने कस्टम हेडर को पारित करने के निर्देशों का पालन करने का प्रयास किया लेकिन यह मेरे लिए काम नहीं कर रहा है। यहाँ मैं अपने क्रमशः परीक्षणrspec नियंत्रक परीक्षण में कस्टम अनुरोध शीर्षलेख rack.session

post :create, {name:profile.name}, {'X-API-KEY' => 'somekey'} 

मेरी नियंत्रक से में फोन कर रहा हूँ मैं एक्स-एपीआई-कुंजी के रूप में शीर्ष लेख में यह दिखाई नहीं देता, लेकिन इसके बजाय request.headers [ "rack.session" में हो रहा है है ] [ "एक्स-एपीआई-कुंजी"]

मैं इसे कैसे "rack.session"

उत्तर

6

मैं आज सुबह जारी करके खुदाई कर रहा है और साथ ही इसे पारित नहीं करने के लिए मिलता है। समस्या http://apidock.com/rails/ActionController/TestProcess/process से आती है क्योंकि विधि हस्ताक्षर इस (action, parameters = nil, session = nil, flash = nil, http_method = 'GET') जैसा दिखता है। यह मेरे लिए काफी अप्रत्याशित था और मैं देख रहा हूं हालांकि मुझे पूरा यकीन नहीं है कि ऐसा क्यों होता है।

काम कर आप

before do request.headers['X-API-KEY'] = 'somekey' end

यह काम करता है कर सकता है इसे पाने के लिए, मैं वास्तव में क्या नहीं करना चाहता था/get विधि से उम्मीद है, हालांकि।

+1

क्या आपने कभी पता लगाया कि दस्तावेज का तरीका क्यों काम नहीं करता है? (आपका समाधान मेरे लिए काम करता है) – joelparkerhenderson

+0

यह काम करता है लेकिन व्यक्तिगत अनुरोध के साथ एक्स-एपीआई-हेडर हेडर भेजना अच्छा होगा, इसलिए मुझे अपने पहले 'पहले' के साथ दो पूरी तरह अलग 'वर्णन' ब्लॉक बनाने की ज़रूरत नहीं है। विभिन्न एपीआई कुंजी का परीक्षण करने के लिए ब्लॉक ... – sixty4bit

+1

@joelparkerhenderson https://github.com/rspec/rspec-rails/issues/65 के अनुसार यह करने का यह तरीका है। @ sixty4bit आप अनुरोध करने से पहले इसे अपने 'इसे' ब्लॉक में डाल सकते हैं, या एक विधि लिख सकते हैं जो आपके लिए पहले दो ब्लॉक की बजाय दो चीजें करता है। –

संबंधित मुद्दे