Rails Action Cable: Как я могу получить доступ к переменным экземпляра в ApplicationCable :: Channel Class? - PullRequest
0 голосов
/ 08 октября 2018

Я хотел бы создать чаты для каждой страницы продукта, чтобы пользователи могли общаться о продукте, пока они изолированы от обсуждений других продуктов.

Для этой цели;Я планировал использовать экземпляр @product, например, varialbe при определении подписок;переменные экземпляра недоступны в Action Cable

"app / channel / product_channel.rb"

class ProductChannel < ApplicationCable::Channel
  def subscribed
    stream_from "room_channel_product_#{@product.id}"
  end

  def unsubscribed
  end
end

Как я могу получить доступ к переменным экземпляра в модуле канала ??

1 Ответ

0 голосов
/ 10 октября 2018

Я думаю, что вы не можете получить доступ к переменной экземпляра при определении подписок.Но вы можете передать product_id в качестве параметра, а затем подписаться на ProductChannel.https://guides.rubyonrails.org/action_cable_overview.html#subscriber

App.cable.subscriptions.create { channel: "ProductChannel", product_id: your_product_id }

И на вашем канале вы можете получить доступ к «product_id», например:

def subscribed
  stream_from "product_channel_#{params[:product_id]}"
end
...