0

如何从 n_channel.rb 重定向到路径?

我不能使用redirect_tolink_to

什么是最好的方法?

4

2 回答 2

1

不应该在任何模型文件中进行重定向(n_channel.rb 似乎是模型文件)。

理想的方法是将您的值从模型返回到控制器。然后根据您的业务需求从控制器重定向。

于 2016-06-01T06:45:25.910 回答
1

您的频道用作连接,因此您实际上是从应用程序的其他部分执行此操作。

假设您已正确连接所有内容,您可以执行以下操作。

在应用程序的上述其他部分中,当重定向的时机成熟时:

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
    }
  }
});
于 2018-08-21T08:05:11.960 回答