2010-10-31 16 views
11

मुझे सीखने में दिलचस्पी है कि AJAX को एक मॉडल संवाद कैसे करें। आम तौर पर यदि मैं अपनी वेबसाइट पर एक मोडल संवाद जोड़ना चाहता था तो मैंने अपनी मुख्य जेएस फ़ाइल में jquery UI संवाद कोड जोड़ा और इसे आईडी में बांध दिया।रेल - AJAX एक मॉडल संवाद?

मुझे लगता है कि रेल के साथ मैं एक लिंक बना सकता हूं, जो सर्वर से सभी संवाद कोड प्राप्त करता है और फिर संवाद खोलता है।

क्या यह सच है?

यदि हां, तो क्या आप रेलवे एमवीसी दुनिया में सब कुछ कहाँ रहते हैं, इसका एक सरल उदाहरण प्रदान करके मुझे समझने में मदद कर सकते हैं?

धन्यवाद

+0

जरूरी है JqueryUI.dialog का उपयोग करना चाहिए। आपको कुछ रेल विशिष्ट – shingara

+0

की आवश्यकता नहीं है "सर्वर से सभी संवाद कोड प्राप्त करने" का क्या मतलब है? क्या आपका मतलब है कि jQuery कोड प्राप्त करना जो संवाद बना सकता है? आपके पास यह कोड एक जेएस फ़ाइल में क्यों नहीं होगा जो आपके लेआउट या व्यू में शामिल है? यदि आप संवाद को पॉप्युलेट करने के लिए कुछ प्राप्त करने का प्रयास कर रहे हैं, तो यह एक अलग कहानी है। – Samo

+0

हम्म, क्या इस सवाल के लिए और कुछ है कि मैंने नीचे जवाब नहीं दिया? अगर स्वीकार्य है, तो मैं जवाब की स्वीकृति की सराहना करता हूं :) –

उत्तर

35

हे भगवान, आप इस 4 महीने पहले आप शायद अब तक बाहर इस समझ गए होंगे तो पूछा। मुझे यह कैसे करना है इस पर एक अच्छा लिखने में परेशानी भी थी। यहाँ मैं क्या पता लगा है:

में

आप इस संवाद बॉक्स को ऊपर खींचने के लिए चाहते हैं जो कुछ पेज, तुम इतनी तरह एक div करना चाहते हैं (नोटिस यदि आपने अभी तक इस प्रदर्शित करने के लिए नहीं करना चाहते हैं):

<div id="person-form" title="Person" style="display:none"></div> 

उस दृश्य में, आप भी एक अजाक्स कॉल इस डायलॉग बॉक्स को ऊपर खींचने के लिए चाहते हैं: जाहिर है

<%= link_to 'Edit Profile', edit_person_path(person), :remote => true %> 

, आप कुछ कार्रवाई करने के लिए मार्ग को यह edit_person_path चाहते हैं।

$("#person-form").dialog({ 
    autoOpen: true, 
    height: 600, 
    width: 600, 
    modal: true, 
    title: 'Edit Person', 
    buttons: { 
    "Edit": function() { $("#edit_person_<%= @person.id %>").submit() }, 
    }, 
    open: function() { 
    $("#person-form").html("<%= escape_javascript(render('form')) %>") 
    }, 
}); 

इस संवाद बॉक्स में एक आंशिक _form.html.erb प्रस्तुत करना होगा: यह कार्रवाई एक js.erb निम्नलिखित की तरह कुछ (jQuery में) है कि प्रस्तुत करना चाहिए।

नोट: आपको jQueryUI शैली को अच्छी तरह से प्रस्तुत करने के लिए संवाद के लिए jQueryUI शैली को सेट करने की आवश्यकता होगी।

+0

हाय, बस इस उदाहरण में आया। धन्यवाद, कम से कम यह स्क्रीन पर मोडल विंडो दिखाई देता है। हालांकि ... यह शुरुआत से आता है। तो जैसे ही मैं अपने इंडेक्स व्यू में जाता हूं, यह पॉप अप करता है, न कि जब मैं रिमोट लिंक पर क्लिक करता हूं। मुझे यकीन है कि ऐसा काम नहीं करना चाहिए था। शायद आपके पास सुझाव हैं? – Lievcin

+0

Jinyoung - मैं आपके मार्गदर्शन का उपयोग कर एक संवाद बॉक्स में एक फॉर्म को लागू करने की कोशिश कर रहा हूं। क्या मैं कुछ गलत कर रहा हूँ? [लिंक] (http://stackoverflow.com/questions/8953135/trying-to-make-a-form-in-a-jquery-dialog-modal-form-work-what-am-i-issing) धन्यवाद – thatdankent

+1

हाय थैंकेन्टेंट, मुझे लगता है कि मुझे बग मिल गई होगी और इसे आपके प्रश्नों में पोस्ट किया होगा। सौभाग्य। –

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