पर प्रतिक्रिया देने के लिए "रेंडर: अपडेट" से AJAX हैंडलिंग बदल रहा है मैं पुराने रेल ऐप को 3.1 में अपग्रेड कर रहा हूं। ऐप काफी काम कर रहा है, लेकिन मेरे पास कुछ AJAX कार्यक्षमता है जिसे मुझे अपडेट करने की आवश्यकता है। (यदि यह कोई फर्क पड़ता है तो मैं jquery और coffeescript का उपयोग कर रहा हूं)रेल 3.1 तक अपग्रेड -
सभी मौजूदा AJAX कार्यक्षमता रेंडर: अपडेट का उपयोग करके लिखी गई थी। उदाहरण के लिए
render :update do |page|
page.remove "financial_tran_offset_#{params[:ftof_id]}"
page.replace_html 'details', :partial => 'details', :locals => {:obj => @fire}
end
मुझे लगता है कि ऐसा करने का नया पसंदीदा तरीका answer_to का उपयोग करना है? जेएस को संभालने के लिए ब्लॉक, लेकिन मुझे इन विभिन्न मामलों को संभालने का सबसे अच्छा तरीका सुनिश्चित नहीं है।
पहला मामला (page.remove
) मैं संपत्ति पाइप लाइन के साथ लगता है के लिए, मैं एक बाहरी जे एस होना चाहिए/ऐप्स/आस्तियों/javascripts/(जैसे page.remove) जावास्क्रिप्ट पक्ष को संभालने के लिए में, लेकिन मैं कर रहा हूँ सुनिश्चित नहीं है कि जेएस फ़ाइल में पैरामीटर कैसे पास करें। मुझे लगता है कि आप कुछ ऐसा कर सकते हैं:
respond_to do |format|
format.js {:render :js => {:ftof => params[:ftof_id]}
end
लेकिन मुझे यकीन नहीं है कि आप इसे जेएस फ़ाइल के अंदर से कैसे उठा सकते हैं। जेएस को जानकारी पास करने का यह सही तरीका है? या क्या कोई और तरीका है जिसका उपयोग करना चाहिए?
दूसरे मामले के लिए (page.replace_html
) मुझे लगता है कि इसे 3.1 से हटा दिया गया है/हटा दिया गया है (apidock के अनुसार)। मुझे फिर से संदेह है कि यह ऐप/संपत्ति/जावास्क्रिप्ट निर्देशिका में जेएस फ़ाइल का उपयोग करना चाहिए, लेकिन यह सुनिश्चित नहीं है कि मुझे आंशिक रूप से प्रस्तुत करने और जेएस में इस जानकारी को पास करने के बारे में कैसे जाना चाहिए।
इस क्षेत्र में किसी भी संकेत दिए गए के लिए धन्यवाद =)
ठंडा। क्या यह कॉफ़ीस्क्रिप्ट के साथ ऐसा करने के लिए है, या आप update.js.erb में सीधे जेएस तक ही सीमित हैं? –
यदि आप वास्तव में कॉफीस्क्रिप्ट का उपयोग करना चाहते हैं, तो आप सक्षम हो सकते हैं, लेकिन गतिशील विचारों में समर्थन मैं जो कह सकता हूं उससे स्पॉटी है। (मैं व्यक्तिगत रूप से सीधे जेएस पसंद करता हूं।) सरल jQuery एक-लाइनर के लिए कॉफीस्क्रिप्ट थोड़ा अधिक है। '$ ('# id')। संलग्न करें ('सामग्री');' से '$ ('# id')। 'सामग्री' संलग्न करें। यह कोष्ठक के सेट को बचाने के लिए ओवरहेड के लायक नहीं है। JQuery कॉम्पैक्ट और काफी सरल है। इसके साथ रहना भी हो सकता है। – Substantial
बहुत विस्तृत उत्तर के लिए धन्यवाद! –