3

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

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

在引擎中,我想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”。

我究竟做错了什么?

4

1 回答 1

-1

接缝我解决了问题。我会在 Comments 模型中调用 current_user ,但它不起作用。但是current_user从控制器获取,工作正常。但这不是优雅的方式(。

于 2012-05-20T10:05:15.440 回答