【发布时间】:2016-07-11 12:23:51
【问题描述】:
所以这是我的问题。我有一个在其中设计的主要应用程序,我正在为此创建一个引擎。在引擎中,我需要来自主应用程序的 current_user。不知道我将如何得到它,我尝试了this link,但无济于事。任何帮助都会很棒。如果不建议这样做,请解释原因。
【问题讨论】:
标签: ruby-on-rails devise rails-engines
所以这是我的问题。我有一个在其中设计的主要应用程序,我正在为此创建一个引擎。在引擎中,我需要来自主应用程序的 current_user。不知道我将如何得到它,我尝试了this link,但无济于事。任何帮助都会很棒。如果不建议这样做,请解释原因。
【问题讨论】:
标签: ruby-on-rails devise rails-engines
解决了
在引擎中,您可以使用“main_app”访问主应用程序。在这个变量中,你可以访问当前用户,假设你有设计。为了访问 devise current_user 你所要做的就是
main_app.scope.env['warden'].user
Devise 将用户存储在会话中的warden key 中。因为它在内部使用warden 进行身份验证并将详细信息存储在会话中。
如果有其他解决方案,请告诉我。
【讨论】:
如果您使用的是 Rails 5.1+,则改为
main_app.scope.request.env['warden'].user
那是因为 env 已被弃用。
【讨论】: