我正在研究聊天模块.为此,我使用了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时它给了我错误