У меня есть базовое приложение чата, которое отправляет сообщения через ActionCable.Я пытаюсь отсортировать сообщения влево / вправо в зависимости от того, кто их отправил, почти как приложение для обмена сообщениями Facebook.Я пытаюсь добиться этого с помощью базовой логики в части (_message.html.erb), которую я отправляю:
<%if message.user_id == current_user.id %>
//message is to the right with inline CSS
<% else°%>
// message is to the left with inline CSS
<% end°%>
Это прекрасно работает, если кто-то перезагружает страницу, но когда приложение используется, всеновые сообщения, отправленные через ActionCable, отправляются справа.
Я проверил партиал, который отправляется, и кажется, что
<%if message.user_id == current_user.id %>
работает на стороне пользователя, а затем всегда отправляется первая часть партила, но не весь _message.html.erb.Можно ли вместо этого отправить весь фрагмент и убедиться, что
<%if message.user_id == current_user.id %>
запускается при получении сообщения всеми подписанными пользователями?
Контроллер сообщений:
if @message.save
RoomChannel.broadcast_to @room.id, message:
MessagesController.render(partial: 'messages/message', locals: {message:
@message, current_user: current_user})
room.js:
received: function (data) {
$('.messages').append(data.message);
}
Если понадобятся какие-либо дополнительные части кода, пожалуйста, спросите или: https://github.com/TTARJAN/chatApp