如何从 n_channel.rb 重定向到路径?
我不能使用redirect_to
或link_to
。
什么是最好的方法?
如何从 n_channel.rb 重定向到路径?
我不能使用redirect_to
或link_to
。
什么是最好的方法?
不应该在任何模型文件中进行重定向(n_channel.rb 似乎是模型文件)。
理想的方法是将您的值从模型返回到控制器。然后根据您的业务需求从控制器重定向。
您的频道用作连接,因此您实际上是从应用程序的其他部分执行此操作。
假设您已正确连接所有内容,您可以执行以下操作。
在应用程序的上述其他部分中,当重定向的时机成熟时:
def async_redirect(path)
NChannel.broadcast_to(
user, # or however you identify your subscriber
head: 302, # redirection code, just to make it clear what you're doing
path: path # you'll need to use url_helpers, so include them in your file
)
end
然后在前面
App.cable.subscriptions.create("NChannel", {
connected: () => {},
received: (data) => {
if (data.head == 302 && data.path) {
window.location.pathname = data.path; # Voila
}
}
});