मैं chating
मॉड्यूल पर काम कर रहा हूं। इसके लिए मैंने private_pub gem
का उपयोग किया है। इस मॉड्यूल में मैंने तीन चैनल बनाए हैं, लेकिन मैं उन सभी का जिक्र नहीं कर सकता, क्योंकि यह एक बहुत, बहुत बड़ा पेज दिखाएगा। तो चलिए एक चैनल से चिपके रहें।js.erb फ़ाइल दो बार निष्पादित कर रही है। रेल पर रूबी - private_pub
मैं चैनल होने "<%= subscribe_to "/conversations/send_invitation" %>"
और फिर ajax
काम करता है एक लिंक पर क्लिक करें और "conversations/send_invitation"
को जाता है (केवल एक बार - जो ठीक है) और मेरे "/conversations/send_invitation"
मैं
def send_invitation
@conversation = Conversation.new(conversation_params)
respond_to do |format|
format.js { render :layout => false }
format.html
end
end
और फिर मेरी send_invitation.js.erb
फ़ाइल मैंने में है निम्नलिखित
<% publish_to "/conversations/send_invitation" do %>
var recipient_id = "<%[email protected] %>";
var current_temp_user = $("#current_temp_user").val();
if(recipient_id == current_temp_user){
console.log('here')
$("#invitation_div").html("<%=j(render :partial => '/restaurants/invitation')%>");
card_modal = $('#invitation_card').modal();
card_modal.modal('show');
}
<% end %>
यहाँ मेरी application.js
फ़ाइल है
//= require jquery
// require jquery-ui
//= require jquery_ujs
// require turbolinks
//= require bootstrap
//= require jquery.raty
//= require private_pub
//= require_tree .
और recipient side
(जो अच्छा है) पर मोडल डिस्प्ले।
अब समस्या यह है कि मैं अपने firefox console/html
में same id
के साथ दो modal
देख सकता हूं। closing/submit
modal
के लिए buttons
भी काम करना बंद कर दिया। console.log
में फ़ाइल में console.log
परिणाम दो बार दिखाया गया है, इसलिए यह स्पष्ट है कि js.erb
फ़ाइल दो बार निष्पादित हो रही है। लेकिन ध्यान देने योग्य बात यह है कि ajax
केवल एक बार भाग गया। मैं इस पर घंटे की जोड़ी बर्बाद किया है और केवल This link पाया जो भी, मेरे लिए काम नहीं किया क्योंकि जब मैं या तो jquery.js
या jquery_ujs.js
यह मुझे देता है त्रुटियों
क्या आपके सर्वर लॉग कहता है? क्या क्रिया 'send_invitation' एक या दो बार निष्पादित की गई है? हो सकता है कि आप दो बार चैनल की सदस्यता ले रहे हों? आप ब्राउज़र के डेवलपर कंसोल में इसे डीबग कर सकते हैं। – coorasse
@coorasse नहीं, यह 'send_invitation' को केवल एक बार – ImranNaqvi
पर कॉल कर रहा है, तो क्या आप डेवलपर कंसोल में देख सकते हैं यदि आपने चैनल में दो बार सदस्यता ली है? – coorasse