有没有办法重新定向(如redirect_to)来自worker的模块,rails中的模块?

时间:2017-08-25 13:46:41

标签: ruby-on-rails ruby-on-rails-5 ruby-2.3

您好,我正在处理一些后台作业,我需要从模块或直接从工作人员重定向URL,但据我所知,只有一种方法,即redirect_to,但它在模块和工作者中不可用MVC架构,但我需要这样做。

请参阅下面的代码: -

@oauth = Koala::Facebook::OAuth.new(Figaro.env.fb_app_id,Figaro.env.fb_secret_token,Figaro.env.fb_callback_url)
oauth_code_url = @oauth.url_for_oauth_code
redirect_to oauth_code_url

我还包含了include ActionController::UrlFor来获取Module和Worker中的redirect_to方法,但是它再次抛出错误,我无法将控制器方法调用到模块或worker中。有人可以建议这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

重定向仅在请求/响应周期内有意义,工作人员通常在后台发生异步,因此可能已启动的用户不等待工作人员的响应。

如果你确实想要等待(同步运行工作者),那么工作人员不能重定向,工作人员应该“发信号”控制器执行重定向(这是因为你想保持关注点分离)。