अगर मैं रेल में एक RHTML ध्यान में रखते हुए हूँ, यह यूआरएल-भागने कुछ आसान है:मैं रेल में एक स्ट्रिंग को यूआरएल से कैसे बचूं?
<a href="/redirect?href=<%=u target %>">Foo</a>
मैं एक स्ट्रिंग में ऐसा कैसे करते हैं? मैं ऐसा कुछ करना चाहता हूं:
<% redirect_href = "/redirect?#{url_escape target}&foo=bar&baz=some_other_stuff" -%>
<a href="<%= redirect_href =>">Foo</a>
यह छोटा होना चाहिए, है ना?
लिंक टूटी हुई है, rubybrain दूर चला गया है – Lambart
CGI.escape से लिंक अब तय किया गया है –
'CGI.escape' सबसे अच्छी बात नहीं है, क्योंकि यह अंतरिक्ष को '+' के रूप में एन्कोड करता है जिसे हटा दिया जाता है और हमेशा दूसरी तरफ सही ढंग से पार नहीं होता है। उदाहरण के लिए, यदि आपके पास रेल मार्ग "/ my-path /: query" है जहां क्वेरी में '+' शामिल है, तो यह रूट पार्सिंग के बाद '+' के रूप में रहेगा। इसे बेहतर काम करने के लिए, 'ईआरबी :: Util.u (स्ट्रिंग)' का उपयोग करें, जो अंतरिक्ष को "% 20" से बचता है। –