Je suis en train de tester un contrôleur et j'ai eu cette erreur. Je comprends l'erreur, mais vous ne savez pas comment le résoudre.
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"].
Spécifier où? J'ai essayé ceci:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Mais j'ai reçu le même message d'erreur.
Préciser avec quoi, exactement? Je suppose que l'URI de la vue, je veux retourner à:
'/sessions/new'
C'est que ce qu'ils signifient?
OK, si il s'avère qu'ils signifient ce faire:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Quelqu'un peut-il me dire où c'est documenté? J'aimerais lire sur le contexte de cette information.
Que faire si le domaine n'est pas "localhost:3000"? Que faire si il est "localhost:3001" ou quelque chose? De toute façon à anticiper?
Pourquoi n'est-ce pas le travail:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Les Rails docs spécifiquement dire que c'est la façon dont vous définissez les en-têtes.