Ich versuche einen Controller zu testen und habe diesen Fehler erhalten. Ich verstehe den Fehler, weiß aber nicht, wie ich ihn beheben soll.
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"].
Geben Sie an, wo? Ich habe es versucht:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Habe aber den gleichen Fehler.
Geben Sie es mit was genau an? Ich denke, die URI der Ansicht, zu der ich zurückkehren möchte:
'/sessions/new'
Bedeuten sie das?
OK, es stellt sich heraus, dass sie dies tun:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Kann mir jemand sagen, wo das dokumentiert ist? Ich möchte den Kontext dieser Informationen nachlesen.
Was ist, wenn die Domain nicht "localhost: 3000" ist? Was ist, wenn es "localhost: 3001" oder so ist? Wie kann man das vorwegnehmen?
Warum funktioniert das nicht:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
In den Rails-Dokumenten heißt es ausdrücklich, dass Sie die Header so festlegen.