如何在Rails Engine中获取Devise的current_user方法

2023-12-14

我有一个使用 Devise gem 的 Rails 应用程序,并且我正在创建一个要安装在该应用程序中的 Rails 引擎。

mount Comments::Engine => '/talk', :as => 'comments'

在引擎中,我想得到current_user主应用程序的实例。

In {main_app}/initializers/comments.rb

Comments.user_class = "User"
Comments.current_user = "current_user" #current_user is Devise method(works fine in app)

In {引擎}/lib/comments.rb

require "comments/engine"

module Comments
  mattr_accessor :user_class, :current_user

  def self.user_class
    @@user_class.constantize
  end

  def self.current_user
    send(@@current_user)
  end
end

当我打电话时Comments.current_user,我收到错误“错误的常量名称 current_user”。

我究竟做错了什么?


接缝我解决了问题。 我会在 Comments 模型中调用 current_user 但它不起作用。 然而得到current_user来自控制器,工作正常。 但这不是优雅的方式(.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Rails Engine中获取Devise的current_user方法 的相关文章

随机推荐