0

我正在尝试显示用户之间的简单聊天。我想像 iMessages 一样设计它,以区分发件人,但我就是不知道该怎么做。无论我尝试什么,它总是看起来像 message.sender == current_user ,即使对于接收者

这是私人酒吧的 js.erb:

<% 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 %>

现在,棘手的部分,在我的 _message.html.erb 中,comment.sender == current_user 始终为真。我尝试根据当前用户使用帮助器实现两种设计:

HTML:

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

帮手:

module MessagesHelper
  def self_or_other(message)
    message.user == current_user ? "current-user-message" : ""
  end
end

不幸的是,我的 div 总是得到“当前用户消息”类。

我错过了什么吗?

4

1 回答 1

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 %>
于 2016-07-20T12:06:18.907 回答