在另一个rails引擎中访问devise current_user

时间:2016-07-11 12:23:52

标签: ruby-on-rails devise rails-engines

所以这是我的问题。我有一个主要应用程序,它正在设计,我正在创建一个引擎。在引擎中我需要来自主应用程序的current_user。我不确定如何得到它,我试过this link但无济于事。任何帮助都会很棒。如果不建议这样做,请解释原因。

2 个答案:

答案 0 :(得分:2)

解决了

在引擎中,您可以使用' main_app'访问主应用。在此变量中,您可以访问当前用户,假设您已设计好。要访问devise current_user,您只需要

main_app.scope.env['warden'].user

Devise将用户存储在会话中的warden键中。因为它在内部使用warden来验证并在会话中存储细节。

如果有其他解决方案,请告诉我。

答案 1 :(得分:1)

如果您使用的是Rails 5.1+,那么这将是

main_app.scope.request.env['warden'].user

多数民众赞成因为env已被弃用。