เพียงแค่อัปเดตคำถามนี้ให้ทันสมัย แนวปฏิบัติที่เหมาะสมที่สุดในปัจจุบันสำหรับการตรวจสอบ current_paths เมื่อใช้ Capybara 2.5+ คือการใช้ current_path matcher ซึ่งจะใช้ Capybaras ที่รอพฤติกรรมเพื่อตรวจสอบเส้นทาง หากต้องการตรวจสอบกับ Request_uri (เส้นทางและสตริงแบบสอบถาม)
expect(page).to have_current_path(people_path(:search => 'name'))
ถ้าต้องการแค่ส่วนของพา ธ (ละเว้นสตริงเคียวรี)
expect(page).to have_current_path(people_path, only_path: true) # Capybara < 2.16
expect(page).to have_current_path(people_path, ignore_query: true) # Capybara >= 2.16
หากต้องการจับคู่ URL แบบเต็ม
expect(page).to have_current_path(people_url, url: true) # Capybara < 2.16
expect(page).to have_current_path(people_url) # Capybara >= 2.16
matcher จะใช้สตริงที่ถูกเปรียบเทียบกับ == หรือ regex เพื่อจับคู่
expect(page).to have_current_path(/search=name/)
"/people?search=name"
ไม่ได้เป็นเส้นทาง"/people"
เป็นเส้นทาง