हम this post से जानते हैं, रेल में, आप पिछले यूआरएलआप कैसे निर्धारित करते हैं कि request.referrer रेल के आराम से पथ से मेल खाता है?
request.referrer
फोन करके प्राप्त कर सकते हैं लेकिन अगर पिछले यूआरएल अपने रेल आवेदन में शोकहारा पथ में से एक से मेल खाता है आप कैसे की जाँच करते हैं?
शोकहारा रास्तों से, मैं जैसे,
books_path
book_path(book)
edit_book_path(book)
रेल द्वारा प्रदान की पथ, बेशक मैं request.referrer पर एक नियमित अभिव्यक्ति स्ट्रिंग मैच कर सकते हैं मतलब है, लेकिन मुझे लगता है यह थोड़ा बदसूरत है।
एक विशेष मामला है, अपने आवेदन में, यह है कि request.referrer हो सकता है? "स्थानीय होस्ट: 3000/पुस्तकों पेज = 4"
और मैं
books_path
मैच के लिए यह करना चाहते हैं जो रिटर्न "/ किताबें"
इस मामले में, मैं नियमित अभिव्यक्ति स्ट्रिंग मिलान किए बिना कोई मिलान कैसे कर सकता हूं या नहीं? (यदि यह संभव है)
धन्यवाद
पीएस मैंने नियमित अभिव्यक्ति स्ट्रिंग मैच की कोशिश की है, और यह काम करता है। मैंने सोचा कि रेल में बेहतर तरीका हो सकता है।
आप क्यों नहीं बस संदर्भदाता के डोमेन भाग की जाँच नहीं कर सकते हैं कि यह एक आंतरिक/बाह्य यूआरएल से आ रहा है देखने के लिए:
तो फिर तुम इस तरह की जांच कर सकता है? यदि आंतरिक है, तो यह आपके ऐप में परिभाषित एक मार्ग होगा, यदि नहीं, तो यह नहीं होगा। – varatis
@varatis, मुझे नहीं लगता कि आप मेरे प्रश्न को समझ गए हैं।यूआरएल के डोमेन की जांच करना बहुत आसान है। मैं जानना चाहता हूं कि यह पिछला यूआरएल किताबों के "इंडेक्स" पथ से मेल खाता है (मेरे उदाहरण में)। मैं रेगेक्स तुलना किए बिना ऐसा कैसे करूं? –
यदि आप केवल एक पथ को देख रहे हैं, तो ऐसा लगता है कि रेगेक्स या स्ट्रिंग तुलना का उपयोग करना सबसे आसान होगा। – varatis