2012-01-24 16 views
7

Rails uygulamasında, denetleyici işlemlerinden birinde env hashına erişiyorum. çizgisindeRaf env hash Rails test ortamında neden boş?

şey:

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

Bu benim gereksinimleri için harika çalışıyor.

ben test ortamında benim Raylar uygulaması başlatmak ve benzeri bir eylem ziyaret edin: beklendiği gibi Sonra env karma içeriği konsola çıkışı

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

.

Bu eylemi bir RSPec örneğinden aldığımda çıktı boş bir karma mıdır?

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

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

Env hash neden boş?

Bu

+0

Sanırım bunu 'geliştirme' ortamında çalıştırmanız gerekiyor. – Reactormonk

+0

Normalde geliştirme ortamında çalıştırıyorum. Env hash kalkınmada mevcuttu. Sunucuyu "test" modunda manuel olarak başlattığımda gördüğüm davranışın, test paketi aracılığıyla bir istek oluştururken gördüğüm aynı davranış olmadığını belirtmek istedim. – bodacious

cevap

10

kullanımını

request.env 

göstermek yerine sadece denetleyici kodu içinde env bir dummy rails uygulama oluşturdunuz.

örn/yardımcı

def index 
    puts request.env.inspect 
end 

Umut?

Başka bir notta BTW: github repo ile çalışırken, sunucu çalışırken, kök yolunuz için public/index.html dosyasını silmeniz gerekir.

+0

Merhaba - geribildirim için teşekkürler ... Bu hala env hash neden kontrolörde mevcut değil, neden cevap vermiyor? PS - reponları güncelledi – bodacious

+3

Çünkü rspec rayları ActionController :: Metal gönderme yöntemini atlıyor – gef

+0

Ah - teşekkürler gef – bodacious