В канале
javascripts / канал / message.js
App.message = App.cable.subscriptions.create('MessageChannel', {
received: function(data) {
return $('#messages').append(this.renderMessage(data));
},
renderMessage: function(data) {
return "<p> <b>" + data.message + "</p>";
}
});
Маршруты
post 'messages/chat_create/:friendship_id/:friend_id' =>'messages#chat_create' , as:"chat_create"
Мой чат-контроллер
класс MessagesController ‹ApplicationController
def chat_create
@chat = current_user.messages.new(msg: params[:message][:msg],friend_id:params[:friend_id])
if @chat.save
ActionCable.server.broadcast 'message_channel',message: @chat.msg
redirect_to chat_path(params[:friendship_id])
end
end
сообщения / chat.html.erb
<div id="messages">
<%=form_for :message, url: chat_create_path(params[:friendship_id],params[:friend_id]) , method: :post do |f|%>
<%=f.text_field :msg %>
<%=f.submit%>
<%end%>
</div>
Как я могу это улучшить. Пожалуйста, дайте мне решения