2011-12-13 15 views
6

मेरे ऐप के सभी पृष्ठों पर, मुझे वर्तमान पृष्ठ के JSON संस्करण का लिंक चाहिए। ऐसा करने के लिए कोई साफ चाल है? जहां जटिल हो गया था जब अतिरिक्त '&' पैरामीटर URL में शामिल किए गए थे।यूआरएल को JSON संस्करण में कनवर्ट करना?

'/users' => '/users.json' 

'/users?page=1&per_page=5' => '/users.json?page=1&per_page=5' 

उत्तर

8

एक Get url for current page, but with a different format से इस उत्तर के लिए ttribution, संशोधनों के साथ:

हेल्पर:

def current_url(new_params) 
url_for params.merge(new_params) 
end 

लिंक:

<%= link_to "JSON of this page", current_url(:format=>:json) 
+0

जैसा कि आपने उद्धृत प्रश्न में कहा है, आपको उनका उपयोग करने से पहले पैरा को डुप्लिकेट करना चाहिए। वैसे भी, अपने उत्तर को स्वीकार करने के लिए स्वतंत्र महसूस करें। –

+0

"url_for: params => params.merge (new_params)" की आवश्यकता क्या थी, केवल "url_for params.merge (new_params)" के बजाय। –

+0

ओह क्षमा करें, मैंने 'विलय 'के बजाय' विलय! 'पढ़ा –

10

इस कोशिश:

तो यूआरएल के रूप में स्थानांतरित किया जाएगा

polymorphic_path(@user, :format => :json) 

वैकल्पिक रूप से

(इस API doc में देखा गया):

user_path(:id => @user.id, :format => :json) 
+0

मैं, हर पृष्ठ पर JSON संस्करण के लिए लिंक की जरूरत है ताकि लिंक के लिए अलग होगा उस पृष्ठ का पथ और मेरे पास एक, या कई संबंधित वस्तुएं हो सकती हैं। क्या वर्तमान पृष्ठ के नामित पथ को गिट करने का कोई तरीका है और इसमें शामिल है: format =>: json? –

+0

मैंने पाया [यह सवाल] (http://stackoverflow.com/questions/5913525/get-url-for-current-page-but-with-a- अलग-अलग-format), आपको –

+0

की सहायता करनी चाहिए, जब मुझे आवश्यकता हो लोकेल सेट करने के लिए, लेकिन वर्तमान पृष्ठ को रखने के लिए, मैं उदाहरण के लिए 'url_for (: locale =>: en)' का उपयोग करता हूं। यह 'लोकेल 'के साथ काम करता है, इसलिए शायद यह' प्रारूप ' –

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