Я работаю над модулем chating
. Для этого я использовал private_pub gem
. В этом модуле я сделал три канала, но я не могу упомянуть всех здесь, потому что он покажет очень и очень большую страницу. Итак, давайте придерживаться одного канала.Файл js.erb выполняется два раза. Ruby on Rails - 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
(что хорошо).
Теперь проблема в том, что я вижу два modal
с same id
в моем firefox console/html
. И buttons
за closing/submit
modal
также прекратил работать. Также console.log
в моем send_invitation.js.erb
файле показал два раза результат console.log
, поэтому ясно, что файл js.erb
выполняется два раза. Но стоит отметить, что ajax
работал только один раз. Я потратил пару часов на него и нашли только This link, который также не работает для меня, потому что когда я удалить либо jquery.js
или jquery_ujs.js
это дает мне ошибки
Что говорит ваш журнал сервера? Выполнено ли действие 'send_invitation' один или два раза? Может быть, вы дважды подписываетесь на канал? Вы можете отладить это в консоли разработчика браузера. – coorasse
@coorasse no он вызывает 'send_invitation' только один раз – ImranNaqvi
, так что вы можете видеть в консоли разработчика, если вы подписались дважды на канал? – coorasse