【发布时间】:2017-10-25 18:20:59
【问题描述】:
我对 Rails 几乎是全新的,或者我相信我自己会知道如何回答这个问题。我只是想修改在基本 ActionCable 演示中创建的基本聊天应用程序:https://medium.com/@dhh/rails-5-action-cable-demo-8bba4ccfc55e#.6lmd6tfi7
我想拥有多个聊天室,而不是只有一个聊天室,所以我修改了我的routes.rb,添加了这一行:
get '/rooms/show/:topic', to: 'rooms#show'
所以现在我可以根据不同的主题访问不同的聊天室。 /app/controllers/rooms_controller.rb 的房间控制器可以毫无问题地处理这些路由:
class RoomsController < ApplicationController
def show
@topic = params[:topic]
@messages = Message.all
end
end
但是这个参数没有被传递给app/channels/room_channel.rb,我只是不确定我需要做哪些修改。我目前的尝试:
class RoomChannel < ApplicationCable::Channel
def subscribed
stream_from "room_channel_#{params[:topic]}"
end
只返回“room_channel_”
【问题讨论】:
-
参数在您的视图和控制器中可用。如果您要访问控制器中存在的路由,则可以
p params.inspect如果您不在视图或控制器中,则需要将值传入而不是从参数哈希中获取。
标签: ruby-on-rails