मैं रेल 3.2 का उपयोग कर रहा हूं, मेरे पास एक फॉर्म है और मैं इसे AJAX के माध्यम से पोस्ट करना चाहता हूं और नियंत्रक रिटर्न जेसन है।रेल 3 रिमोट फॉर्म: मैं सामग्री प्रकार कैसे निर्दिष्ट करूं?
मैं बहुत की तरह एक form_for सहायक उपयोग कर रहा हूँ:
= form_for(@object, :remote => true, :format => :json) do |f|
....
मेरे वस्तुओं नियंत्रक बनाने के विधि इस प्रकार है:
def create
respond_to do |format|
if @object.save
format.html { redirect_to @object }
format.json { render json: @object, status: :created, location: @object }
else
format.html { render action: "new" }
format.json { render json: @object.errors, status: :unprocessable_entity }
end
end
end
रूप ajaxly प्रस्तुत करने अपेक्षा के अनुसार। लेकिन नियंत्रक एचटीएमएल लौट रहा है, जेसन नहीं!
फ़ायरबग के साथ अनुरोध का निरीक्षण करना और सुनिश्चित करें कि AJAX अनुरोध पर सामग्री-प्रकार http शीर्षलेख एप्लिकेशन/एचटीएमएल पर सेट किया जा रहा है।
इसके चारों ओर प्रलेखन बहुत दुर्लभ है: प्रारूप =>: जेसन सिर्फ ".json" को फॉर्म एक्शन में जोड़ना प्रतीत होता है, वास्तव में किसी भी http शीर्षलेख को संशोधित नहीं करता है।
मैंने यह भी कोशिश की है: content_type =>: json को कोई प्रभाव नहीं है।
मैं बस मुश्किल नहीं कोड नियंत्रक json वापस जाने के लिए कर सकते हैं के रूप में वहाँ अन्य स्थानों पर जहां मैं इसे वापस करने के लिए एचटीएमएल ...
तो किसी को पता है का उपयोग करते समय कैसे नियंत्रक json रेंडर करने के लिए बताने के लिए चाहते हैं कर रहे हैं form_for?
किसी भी मदद के लिए धन्यवाद
क्या यूआरएल और विधि पृष्ठ पर अपने प्रपत्र टैग में गाया जाता है? – iltempo
पोस्ट, पूरा टैग है:
नहीं जेसन यहाँ। क्या आपने request.xhr का उपयोग करने पर विचार किया था? अनुरोधित प्रारूप के बजाय AJAX और सामान्य अनुरोधों के बीच अंतर करने के लिए? – iltempo