मैंने इस जवाब को अपडेट किया है कि कैपिबारा में आधुनिक सम्मेलनों को प्रतिबिंबित करें। मुझे लगता है कि यह आदर्श है क्योंकि यह स्वीकृत उत्तर है, और समाधान ढूंढते समय कितने लोगों को संदर्भित किया जा रहा है। उस के साथ, वर्तमान पथ की जांच करने का सही तरीका has_current_path?
Capybara द्वारा प्रदान किए गए मिलान का उपयोग करना है , जैसा कि यहां प्रलेखित किया गया है: यहां देखें
उदाहरण उपयोग:
expect(page).to have_current_path(people_path(search: 'name'))
जैसा कि आप दस्तावेज़ में देख सकते हैं, अन्य विकल्प उपलब्ध हैं। यदि वर्तमान पृष्ठ है, /people?search=name
लेकिन आप केवल इस बात की परवाह करते हैं कि यह /people
पृष्ठ पर ध्यान दिए बिना है, तो आप only_path
विकल्प भेज सकते हैं :
expect(page).to have_current_path(people_path, only_path: true)
इसके अतिरिक्त, यदि आप संपूर्ण URL की तुलना करना चाहते हैं:
expect(page).to have_current_path(people_url, url: true)
इस विधि को इंगित करने के लिए टॉम वालपोल को श्रेय।
"/people?search=name"
एक रास्ता नहीं है ।"/people"
एक रास्ता है