gpt4 book ai didi

javascript - js.erb 文件执行了两次。 Ruby on Rails - private_pub

转载 作者:数据小太阳 更新时间:2023-10-29 04:52:27 24 4
gpt4 key购买 nike

我正在研究 chating模块。为此,我使用了 private_pub gem .在这个模块中,我制作了三个 channel ,但我不能在这里一一列举,因为它会显示一个非常非常大的页面。因此,让我们坚持一个 channel 。

我单击具有 channel "<%= 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 = "<%=@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 .

模态显示在 recipient side (这很好)。

现在的问题是我可以看到两个 modalsame 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它给我错误

最佳答案

我找不到解决方案,但我认为有人告知实际问题是值得的。

在我的例子中,问题是我在同一页面上创建了两个 channel ,这就是为什么它与瘦服务器握手两次。

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

关于javascript - js.erb 文件执行了两次。 Ruby on Rails - private_pub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33912221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com