我想为每个产品页面创建聊天室,以便用户可以在与其他产品的讨论隔离的同时谈论产品。
以此目的; 我计划在定义订阅时使用 @product 实例变量,但是看起来;在 Action Cable 中无法访问实例变量
“应用程序/频道/product_channel.rb”
class ProductChannel < ApplicationCable::Channel
def subscribed
stream_from "room_channel_product_#{@product.id}"
end
def unsubscribed
end
end
如何访问通道模块中的实例变量?
我认为您无法在定义订阅时访问实例变量。但是您可以将 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句