Sto lavorando al modulo chating
. Per quello ho usato private_pub gem
. In questo modulo ho realizzato tre canali, ma non posso menzionarli tutti qui, perché mostrerà una pagina molto, molto grande. Quindi atteniamoci a un canale.Il file js.erb è in esecuzione due volte. Ruby on Rails - private_pub
clicco su un link con il canale "<%= subscribe_to "/conversations/send_invitation" %>"
e poi ajax
opere e va a "conversations/send_invitation"
(solo una volta - che è ok) e nel mio "/conversations/send_invitation"
ho
def send_invitation
@conversation = Conversation.new(conversation_params)
respond_to do |format|
format.js { render :layout => false }
format.html
end
end
e poi nella mia send_invitation.js.erb
file che ho il seguente
<% 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 %>
Ecco il mio file application.js
//= require jquery
// require jquery-ui
//= require jquery_ujs
// require turbolinks
//= require bootstrap
//= require jquery.raty
//= require private_pub
//= require_tree .
E le visualizzazioni modali a recipient side
(che è buono).
Ora il problema è che posso vedere due modal
con il same id
nel mio firefox console/html
. E lo buttons
per closing/submit
il modal
ha smesso di funzionare. Anche il console.log
nel mio file send_invitation.js.erb
ha mostrato due volte il risultato console.log
, quindi è chiaro che il file js.erb
è in esecuzione due volte. Ma il punto da notare è che ajax
ha funzionato solo una volta. Ho sprecato paio di ore su di esso e solo This link trovato che, inoltre, non ha funzionato per me, perché quando rimuovo sia jquery.js
o jquery_ujs.js
mi dà errori
cosa fa il tuo log del server dicono? L'azione 'send_invitation' è eseguita una o due volte? Forse ti stai abbonando al canale due volte? Puoi eseguire il debug nella console per sviluppatori del browser. – coorasse
@coorasse no chiama 'send_invitation' solo una volta – ImranNaqvi
quindi, puoi vedere nella console degli sviluppatori se ti sei abbonato due volte al canale? – coorasse