【问题标题】:Accessing devise current_user inside another rails engine在另一个 Rails 引擎中访问设计 current_user
【发布时间】:2016-07-11 12:23:51
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    解决了

    在引擎中,您可以使用“main_app”访问主应用程序。在这个变量中,你可以访问当前用户,假设你有设计。为了访问 devise current_user 你所要做的就是

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

    Devise 将用户存储在会话中的warden key 中。因为它在内部使用warden 进行身份验证并将详细信息存储在会话中。

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

    【讨论】:

      【解决方案2】:

      如果您使用的是 Rails 5.1+,则改为

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

      那是因为 env 已被弃用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 2013-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-10
        相关资源
        最近更新 更多