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

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

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

在Engine中,我想从主应用程序中获取current_user实例。

{main_app} /initializers/comments.rb中

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

{engine} /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 ,工作正常。 但这不是优雅的方式(。