Tôi đang cố gắng kiểm tra bộ điều khiển và tôi gặp lỗi này. Tôi hiểu lỗi, nhưng không biết làm thế nào để sửa chữa nó.
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"].
Chỉ định nó ở đâu? Tôi đã thử điều này:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Nhưng bị lỗi tương tự.
Chỉ định nó với những gì, chính xác? Tôi đoán URI của chế độ xem mà tôi muốn nó quay trở lại:
'/sessions/new'
Đó có phải là những gì họ muốn nói?
Được rồi, hóa ra ý họ là làm thế này:
setup do
@request.env['HTTP_REFERER'] = 'http://localhost:3000/sessions/new'
post :create, { :user => { :email => 'invalid@abc' } }, {}
end
Ai đó có thể cho tôi biết nơi đó được ghi lại không? Tôi muốn đọc về bối cảnh của thông tin đó.
Điều gì sẽ xảy ra nếu miền không phải là "localhost: 3000"? Điều gì sẽ xảy ra nếu đó là "localhost: 3001" hoặc một cái gì đó? Bất kỳ cách nào để dự đoán điều đó?
Tại sao điều này không hoạt động:
setup { post :create, { :user => { :email => 'invalid@abc' } },
{ 'referer' => '/sessions/new' } }
Tài liệu Rails nói cụ thể đó là cách bạn đặt tiêu đề.