2009-07-04 27 views
5

मैं रेल ऐप में कुछ संसाधनों पर सामग्री वार्ता लागू करने की तलाश में हूं। मैं Mootools का उपयोग कर रहा हूं और संभवतः "application/json" पर XMLHTTPRequest द्वारा स्वीकार किए गए सामग्री प्रकार को ट्विक करने में सक्षम होगा।रेल में रीस्टफुल कंटेंट वार्तालाप

क्या मेरे नियंत्रक में इस जानकारी को लेने और एक्सएचटीएमएल के बजाय जेएसओएन प्रतिक्रिया उत्पन्न करने का कोई तरीका है?

मैं की तरह कुछ कर रही से बचने के लिए कोशिश कर रहा हूँ:

http://site/resource/1?format=JSON 

... के रूप में यह मेरी यूआरएल अप dirties, अतिरेक की एक निश्चित डिग्री लगाता है और के रूप में लचीला नहीं है।

धन्यवाद!

उत्तर

4

आप इस तरह अपने नियंत्रक विधि में एक respond_to छंद उपयोग कर सकते हैं,:

respond_to do |format| 
    format.html { # Generate an HTML response... } 
    format.json { # Generate a JSON response... } 
end 

रेल निर्धारित करता है प्रतिक्रिया HTTP ग्राहक द्वारा प्रस्तुत हैडर स्वीकार के मूल्य पर आधारित प्रारूप।

1

निश्चित रूप से http://site/resource/1.json काम करना चाहिए? आपको इसे अपने रेल पर्यावरण में स्थापित करने की आवश्यकता हो सकती है, हालांकि, आपके पास रेल के संस्करण के वर्तमान प्रवाह के आधार पर, मुझे संदेह है।

0

अधिक शोध के बाद, रेल के पास आउटपुट के लिए स्वचालित रूप से टेम्पलेट का चयन करने के लिए सब कुछ है, फिर भी आपको प्रत्येक को समर्थन देने के लिए answer_to पर कॉल की आवश्यकता है।

8

http://site/resource/1.json सामग्री-वार्तालाप का सही उपयोग नहीं है। मुद्दा यह है कि यूआरएल वही रहना चाहिए, लेकिन क्लाइंट अनुरोध के साथ भेजता है HTTP हेडर पर आधारित एक विशिष्ट प्रतिनिधित्व (जेएसओएन, पीडीएफ, एचटीएमएल इत्यादि) के लिए पूछता है।