2012-05-19 46 views
2

我有一個使用Devise gem的Rails應用程序,並且我正在創建一個Rails引擎以在此應用程序中裝載。如何在Rails引擎中獲得Devise的current_user方法

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) 

{}引擎/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

接縫我解決了問題。 我會在評論模型中調用current_user並且它不起作用。 但是從控制器得到current_user,工作正常。 但這並不是優雅的方式(。

+4

current_user使用會話,所以它不應該在模型上工作。 – Zamith

相關問題