Open XaoGao opened 2 years ago
Пример channel
import consumer from "./consumer"
import CableReady from "cable_ready"
document.addEventListener("turbolinks:load", () => {
const commentsArea = document.getElementById("comments")
if (commentsArea !== null) {
const commentableId = commentsArea.dataset.commentableId;
const commentableType = commentsArea.dataset.commentableType;
consumer.subscriptions.create({ channel: "CommentChannel", commentable_type: commentableType, commentable_id: commentableId}, {
received(data) {
console.log(data)
if (data.cableReady) CableReady.perform(data.operations)
}
});
}
})
На списке комментария нужно указать
.[class="comments" id="comments" data-commentable-type="#{commentable.class}" data-commentable-id="#{commentable.id}"]
Сам CommentChannel
class CommentChannel < ApplicationCable::Channel
def subscribed
stream_from "comment_#{params[:commentable_type]}_#{params[:commentable_id]}_channel"
end
end
Делать после #193. Сейчас создания комментария идет перезагрузка страницы, нужно после успешного создания комментария отправить данные через active cable 1) Создать канал comments
2) В js файле
3) Добавить в контроллере коментариев
4)