2012-01-24 12 views
7

मेरे रेल ऐप में, मैं अपने नियंत्रक कार्यों में से एक में env हैश तक पहुंच रहा हूं।रेल परीक्षण पर्यावरण में रैक एनवी हैश खाली क्यों है?

की तर्ज पर

कुछ:

def my_before_filter 
    env['some.key'] = "Something or other" 
end 

यह मेरी जरूरतों के लिए महान काम करता है।

अगर मैं परीक्षण परिवेश में मेरी रेल एप्लिकेशन शुरू करते हैं, और इस तरह एक कार्रवाई पर जाएँ:

# /users in UsersController#index 
def index 
    puts env.inspect 
end 

फिर env हैश की सामग्री के कंसोल के लिए उत्पादन की उम्मीद के रूप में है।

जब मैं एक RSpec उदाहरण के भीतर से इस कार्रवाई मिलता है, उत्पादन एक खाली हैश है?

it 'should get the index action' do 
    get :index 
end 

.....{}.... # rspec output 

एनवी हैश खाली क्यों है?

मैं इस

+0

मुझे लगता है कि आपको इसे 'विकास' वातावरण में चलाने के लिए माना जाता है। – Reactormonk

+0

मैं इसे सामान्य रूप से विकास पर्यावरण में चलाता हूं। एनवी हैश विकास में मौजूद था। मैं यह उल्लेख करना चाहता था कि जब मैं मैन्युअल रूप से सर्वर को "टेस्ट" मोड में बूट करता हूं तो मैं वही व्यवहार नहीं करता जो मैं परीक्षण सूट के माध्यम से अनुरोध करते समय देखता हूं। – bodacious

उत्तर

10

उपयोग

request.env 

को दिखाने के लिए के बजाय सिर्फ नियंत्रक कोड के भीतर env एक dummy rails एप्लिकेशन का निर्माण किया है।

, उदा/

def index 
    puts request.env.inspect 
end 

आशा है कि मदद करता है?

एक और नोट पर Btw: जब अपने GitHub रेपो के साथ काम कर आप काम करने के लिए, जब सर्वर चल अपने जड़ मार्ग के लिए सार्वजनिक/index.html हटाने की आवश्यकता।

+0

हाय - फीडबैक के लिए धन्यवाद ... यह अभी भी जवाब नहीं देता है कि एनवी हैश नियंत्रक में सीधे क्यों उपलब्ध नहीं है? पुनश्च - धन्यवाद GEF - रेपोस – bodacious

+3

अद्यतन क्योंकि rspec-रेल ActionController :: धातु प्रेषण विधि नजरअंदाज – gef

+0

आह है – bodacious

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