Sto provando a testare un controller e ho ricevuto questo errore. Capisco l'errore, ma non so come risolverlo.
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"].
Specificare dove? Ho provato questo:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Ma ha ottenuto lo stesso errore.
Specificarlo con cosa, esattamente? Immagino che l'URI della vista a cui voglio che torni:
'/sessions/new'
È questo che vogliono dire?
OK, quindi risulta che intendono fare questo:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Qualcuno può dirmi dove è documentato? Vorrei documentarmi sul contesto di queste informazioni.
Cosa succede se il dominio non è "localhost: 3000"? E se fosse "localhost: 3001" o qualcosa del genere? Qualche modo per anticiparlo?
Perché non funziona:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
I documenti di Rails dicono specificamente che è così che imposti le intestazioni.