Próbuję przetestować kontroler i mam ten błąd. Rozumiem błąd, ale nie wiem, jak go naprawić.
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"].
Określ to gdzie? Próbowałem tego:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Ale dostałem ten sam błąd.
Co dokładnie określisz? Domyślam się, że identyfikator URI widoku, do którego ma wrócić:
'/sessions/new'
Czy to mają na myśli?
OK, więc okazuje się, że mają na myśli:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Czy ktoś może mi powiedzieć, gdzie to jest udokumentowane? Chciałbym poczytać w kontekście tych informacji.
Co się stanie, jeśli domena nie jest „localhost: 3000”? A jeśli to „localhost: 3001” czy coś takiego? Można to przewidzieć?
Dlaczego to nie działa:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Dokumentacja Rails mówi, że właśnie tak ustawiasz nagłówki.