मैं एक नियंत्रक का परीक्षण करने की कोशिश कर रहा हूं और मुझे यह त्रुटि मिली है। मैं त्रुटि को समझता हूं, लेकिन इसे ठीक करना नहीं जानता।
test: on CREATE to :user with completely invalid email should respond with
redirect
(UsersControllerTest):ActionController::RedirectBackError:
No HTTP_REFERER was set in the request to this action,
so redirect_to :back could not be called successfully.
If this is a test, make sure to specify request.env["HTTP_REFERER"].
इसे कहां निर्दिष्ट करें? मैंने यह कोशिश की:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
लेकिन वही त्रुटि मिली।
इसे निर्दिष्ट करें कि वास्तव में क्या है? मुझे लगता है कि मैं इसे वापस जाने के लिए चाहता हूँ देखने के URI लगता है:
'/sessions/new'
क्या उनका यही मतलब है?
ठीक है, इसलिए यह पता चलता है कि उनका मतलब यह है:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
क्या कोई मुझे बता सकता है कि इसका दस्तावेज कहां है? मैं उस जानकारी के संदर्भ में पढ़ना चाहूंगा।
क्या होगा यदि डोमेन "लोकलहोस्ट: 3000" नहीं है? क्या होगा अगर यह "लोकलहोस्ट: 3001" या कुछ और है? प्रत्याशित करने का कोई तरीका?
यह काम क्यों नहीं करता है:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
रेल डॉक्स विशेष रूप से कहते हैं कि आप हेडर कैसे सेट करते हैं।