ฉันกำลังพยายามทดสอบคอนโทรลเลอร์และพบข้อผิดพลาดนี้ ฉันเข้าใจข้อผิดพลาด แต่ไม่ทราบวิธีแก้ไข
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 กล่าวโดยเฉพาะว่าเป็นวิธีที่คุณตั้งค่าส่วนหัว