Chỉ cần cập nhật câu hỏi này cho thời hiện đại. Cách tốt nhất hiện tại để kiểm tra current_paths khi sử dụng Capybara 2.5+ là sử dụng trình so khớp current_path, sẽ sử dụng hành vi chờ của Capybaras để kiểm tra đường dẫn. Nếu muốn kiểm tra dựa trên request_uri (đường dẫn và chuỗi truy vấn)
expect(page).to have_current_path(people_path(:search => 'name'))
Nếu chỉ muốn phần đường dẫn (bỏ qua chuỗi truy vấn)
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
Nếu muốn khớp với url đầy đủ
expect(page).to have_current_path(people_url, url: true) # Capybara < 2.16
expect(page).to have_current_path(people_url) # Capybara >= 2.16
công cụ đối sánh sẽ lấy một chuỗi được so sánh với == hoặc regex để khớp với
expect(page).to have_current_path(/search=name/)
"/people?search=name"
không phải là một con đường ."/people"
là một con đường