使用private_pub区分用户

时间:2016-03-14 14:06:46

标签: ruby-on-rails websocket private-pub

我试图在用户之间显示简单的聊天。我想像iMessages一样设计它来区分发送者,但我无法弄清楚如何做到这一点。无论我尝试什么,它总是看起来像message.sender == current_user,即使对于接收器

这里是私人酒吧的js.erb:

var arr = [{ name: "Client 1", total: 900, value: 12000 }, { name: "Client 2", total: 10, value: 800 }, { name: "Client 3", total: 5, value: 0 }];

var totals = arr.map(e => e.total);
var names = arr.map(e => e.name);
var values = arr.map(e => e.value);

document.write("<pre>" + totals + "</pre>");
document.write("<pre>" + names + "</pre>");
document.write("<pre>" + values + "</pre>");

现在,棘手的部分,在我的_message.html.erb中,comment.sender == current_user总是如此。我尝试使用帮助器基于当前用户实现两个设计:

HTML:

<% publish_to "/comments/create" do %>
 var new_comment = $("<%= escape_javascript(render 'projects/comment', comment: @comment) %>");
  var comment_box = $('.feedback-index');
  new_comment.appendTo(comment_box);

  $('#comment_content').val('');
  $(' .fa-comment').text(" <%= @comment.project.comments.size %>");
 $('#messagesbox').scrollTop($('#messagesbox').prop("scrollHeight"));

<% end %>

助手:

<div class="col-xs-8 col-sm-9 the-comment <%= self_or_other(comment) %>">

不幸的是,我的div总是得到&#34;当前用户消息&#34;类。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

好吧,我找到了解决这个问题的干净方法: 在包装器的某处,添加一个包含current_user id

的输入
<input type="hidden" value="<%= current_user.id %>" name="sender-id" id="senderid">

然后,在你的js发布中,检索它,瞧瞧:)。

<% publish_to whatever_you_want  do %>
    sender = $('#senderid').val();
    if (sender == "<%= current_user.id %>") {
       // do your stuff
    }
<% end %>