J'essaie de tester un contrôleur et j'ai cette erreur. Je comprends l'erreur, mais je ne sais pas comment la corriger.
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"].
Précisez-le où? J'ai essayé ceci:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Mais j'ai eu la même erreur.
Précisez-le avec quoi, exactement? Je suppose que l'URI de la vue vers laquelle je veux qu'elle revienne:
'/sessions/new'
C'est ce qu'ils veulent dire?
OK, donc il s'avère qu'ils veulent dire faire ceci:
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ù cela est documenté? J'aimerais lire le contexte de cette information.
Que faire si le domaine n'est pas "localhost: 3000"? Et si c'est "localhost: 3001" ou quelque chose? Un moyen d'anticiper cela?
Pourquoi cela ne fonctionne pas:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
La documentation Rails indique spécifiquement que c'est ainsi que vous définissez les en-têtes.