Я намагаюся протестувати контролер, і я отримав цю помилку. Я розумію помилку, але не знаю, як її виправити.
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"].
Вкажіть де? Я спробував це:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Але отримала ту саму помилку.
Вкажіть, з чим саме? Я думаю, URI подання, до якого я хочу, щоб він повернувся:
'/sessions/new'
Це те, що вони означають?
Добре, виявляється, вони мають на увазі зробити це:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Хтось може сказати мені, де це задокументовано? Я хотів би прочитати контекст цієї інформації.
Що робити, якщо домен не є "localhost: 3000"? Що, якщо це "localhost: 3001" чи щось інше? Будь-який спосіб передбачити це?
Чому це не працює:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
У документації Rails конкретно сказано, що саме так ви встановлюєте заголовки.