2015-10-18 19 views
5

Uygulamamın testini yazmak için rspec kullanıyorum. yetkilendirme amacıyla ben başlığındaki token yolluyorum:Rails Controller'da 'env' ve 'request.env' arasındaki fark nedir?

request.headers['token'] = '000000099' 
get :index 

kontrolör tarafında ben request.env["HTTP_TOKEN"] tarafından bu değeri okuyabilir ancak env["HTTP_TOKEN"] boştur.

Aradaki fark nedir ve request.env yerine env'u nasıl ayarlayabilirim?

cevap

6

request.env, ziyaret eden kullanıcının ve sunucu ortamlarının bilgileri içeren bir Ruby dizisidir. request.env önemli bilgiler gibi path_info, request_uri vb rspec-railsActionController::Metal sevk yöntemini atlar çünkü

env test için boş ayıklamak için Raylar uygulamasında kullanılıyor, standart bir nesnedir.

+1

RESTful API'larım için 'env' kullanıyorum ve işe yarıyor. –

+0

"Env" yi nerede ve nasıl kullandığınızı gösteren bazı örnek kodlar gönderebilir misiniz? –

+0

Bunun gibi: 'env ['HTTP_TOKEN']' 'kontrol cihazımda. –

İlgili konular