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

时间:2012-05-19 21:06:34

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

我有一个使用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”。

我做错了什么?

1 个答案:

答案 0 :(得分:-1)

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