2015-10-18 10 views
5

Sto usando rspec per scrivere il test per la mia applicazione. Al fine di autorizzazione sto inviando token nell'intestazione:Qual è la differenza tra "env" e "request.env" in Rails Controller?

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

Nel lato controllore posso leggere questo valore per request.env["HTTP_TOKEN"] ma env["HTTP_TOKEN"] è vuoto.

Qual è la differenza tra loro e come è possibile impostare env anziché request.env?

risposta

6

request.env è un array di ruby ​​che contiene informazioni sugli ambienti di un utente che visita e server. request.env è l'oggetto standard che viene utilizzata in applicazione Rails per estrarre informazioni importanti come path_info, request_uri ecc

env è vuota per il test a causa rspec-rails bypassa il metodo ActionController::Metal spedizione.

+1

Sto usando 'env' per le mie API RESTful e funziona. –

+0

Potresti inserire alcuni codici di esempio dove e come stai usando 'env'? –

+0

In questo modo: 'env [" HTTP_TOKEN "]' nel mio controller. –

Problemi correlati