2009-04-03 6 views
28

यह आसान होना चाहिए, लेकिन मुझे एक आसान जवाब नहीं मिल रहा है।रेलवे में क्वेरीस्ट्रिंग के रूप में redirect_to को पैरामीटर मानों को पास करना

मैं वर्तमान अनुरोध से paramirect_to कॉल में पैरा मान कैसे पास कर सकता हूं? मैं की क्वेरी स्ट्रिंग में पारित करने के लिए किसी न किसी रूप मूल्यों मैं करना चाहते हैं एक अनुप्रेषित GET

मैं की तरह कुछ करने के लिए करना चाहते हैं:

redirect_to @thing, :foo => params[:foo] 

और करने के लिए भेजा:

http://things/4?[foo][key1]=val1&[foo][key2]=val2 

धन्यवाद!

इसके अलावा - इसे redirect_to: back के लिए कैसे संभाला जा सकता है?

redirect_to :back, :foo => params[:foo] 

उत्तर

38

redirect_to का 'रिकॉर्ड' फॉर्म केवल प्रतिक्रिया स्थिति के लिए दूसरे तर्क का उपयोग करता है। आपको 'स्ट्रिंग' फ़ॉर्म की तरह, redirect_to के दूसरे रूप का उपयोग करना होगा। उदाहरण:

redirect_to thing_path(@thing, :foo => params[:foo]) 

जो आपके द्वारा उल्लेखित params[:foo] पैराम्स के लिए काम करेगा।

redirect_to polymorphic_path(@thing, :foo => params[:foo]) 
4

जॉर्डन के जवाब देने के लिए जोड़ने के लिए::

आप @thing हो सकता है वस्तु की किस प्रकार पता नहीं है, तो आप उपयोग कर सकते हैं या, जैसा कि ड्रयू नीचे टिप्पणी की, आप polymorphic_url (या _path) का उपयोग कर सकते सार्वभौमिक polymorphic_url विधि। यह वह तरीका है जिसे आप किसी ऑब्जेक्ट में redirect_to पर किसी भी रूप में पास करते समय आंतरिक रूप से बुलाया जाता है।

संबंधित मुद्दे