मुझे सर्वर पर वापस जावास्क्रिप्ट के माध्यम से पैरा पास करने की आवश्यकता है। फिलहाल, मैं बहुत तरह जावास्क्रिप्ट में उन्हें पारित:रेल: अजाक्स के माध्यम से पास पैरा
sendParams("<%= params[:q].to_json %>");
और फिर उन्हें वापस भेजने के इस तरह:
function sendParams(q){
$.ajax({
url: '/mymodel/myaction',
type: 'post',
data: {'q':q},
contentType: 'json'
});
}
मेरी नियंत्रक में, मैं उन्हें मैं किसी भी अन्य पैरामीटर की तरह इस्तेमाल करने की कोशिश:
MyModel.where(params[:q])
लेकिन पैरामीटर, वापस खाली आ रहे हैं, भले ही फ़ायरबग पोस्ट टैब में यह पता चलता है:
q=%7B%26quot%3Bc%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Ba%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bname%26quot%3B%3A%26quot%3Btitle%26quot%3B%7D%7D%2C%26quot%3Bp%26quot%3B%3A%26quot%3Bcont%26quot%3B%2C%26quot%3Bv%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bvalue%26quot%3B%3A%26quot%3B2%26quot%3B%7D%7D%7D%7D%2C%26quot%3Bs%26quot%3B%3A%7B%26quot%3B0%26quot%3B%3A%7B%26quot%3Bname%26quot%3B%3A%26quot%3Bvotes_popularity%26quot%3B%2C%26quot%3Bdir%26quot%3B%3A%26quot%3Bdesc%26quot%3B%7D%7D%7D
कोई विचार क्यों इस जानकारी को क्लॉज द्वारा संसाधित नहीं किया जा रहा है? पैरा को फिर से पठनीय बनाने के लिए मैं क्या कर सकता हूं?
अद्यतन:
Started POST "/publications/search?scroll=active&page=6" for 127.0.0.1 at 2013-0
2-12 22:55:24 -0600
Processing by PublicationsController#index as */*
Parameters: {"scroll"=>"active", "page"=>"6"}
अद्यतन 2:
समस्या जाहिरा तौर पर contentType
से उत्पन्न कर रहा है। जब मैं इसे हटा देता हूं, तो q
को रेल पैरामीटर के रूप में भेजा जाता है।
undefined method `with_indifferent_access' for #<String:0x686d0a8>
कैसे मैं एक पैरामीटर हैश को JSON परिवर्तित कर सकते हैं: दुर्भाग्य से, q
अभी भी JSON में, त्रुटि में परिणाम है?
क्या आप विकास.लॉग में लॉग इन अनुरोध और पैराम प्रदर्शित कर सकते हैं। मुझे लगता है कि यह एक देव env है। – manoj
अच्छा पकड़ो। पैरामीटर में "क्यू" दिखाई नहीं दे रहा है। मुझे लगता है कि यह पोस्ट डेटा में है, भले ही यह चाहिए? – nullnullnull