javascript – js.erb文件正在执行两次. Ruby on Rails – private_pub

前端之家收集整理的这篇文章主要介绍了javascript – js.erb文件正在执行两次. Ruby on Rails – private_pub前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究聊天模块.为此,我使用了private_pub gem.在这个模块中,我已经制作了三个频道,但我不能在这里提到所有这些频道,因为它会显示一个非常非常大的页面.所以让我们坚持一个渠道.

我点击频道“<%= subscribe_to”/ conversation / send_invitation“%>”的链接然后ajax工作并转到“conversation / 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 = "<%=@conversation.recipient.id %>";
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 .

并且模式显示在接收方(这是好的).

现在问题是我可以在我的firefox控制台/ html中看到两个具有相同id的模态.关闭/提交模态的按钮也停止工作.我的send_invitation.js.erb文件中的console.log也显示了两次console.log结果,所以很明显js.erb文件正在执行两次.但值得注意的是,ajax只运行了一次.我浪费了几个小时就发现它只发现This link对我来说也不起作用,因为当我删除jquery.js或jquery_ujs.js时它给了我错误

解决方法

我找不到解决方案,但我认为值得某人告知实际问题.
在我的情况下,问题是我在同一页面上制作了两个频道,这就是为什么它与瘦服务器进行两次握手的原因.

注意但是在一般情况下,如果我们将js文件包含两次,也会发生这种情况.

猜你在找的JavaScript相关文章