2016-05-20 37 views
0

我嘗試會話添加到我的Rails應用程序,我有類SessionManager負責處理會話相關的任務行爲是不包括在

class SessionManager 
    include SessionsHelper 

    def log_in(user) 
    session[:user_id] = user.id 
    end 

    def current_user 
    @current_user ||= User.find_by_id(session[:user_id]) 
    end 

    def logged_in? 
    return false if current_user.nil? 
    true 
    end 
end 

,你可以看到我包括SessionsHelper爲了使用session方法把一些數據會話,但是當我嘗試使用此代碼,我回去:

NameError: undefined local variable or method `session' for <SessionManager:0xa790cfc> 

我該怎麼辦錯了嗎?

在此先感謝。

回答

1

我不確定你的SessionsHelper模塊是什麼樣子,但你可能想看看使用self.included。這有時被稱爲「mixin」。

我相信構建類似這樣的模塊可以幫助你:

module SessionsHelper 
    def self.included(base) 
    base.class_eval do 

     def session 
     # ... 
     end 

    end 
    end 
end 

更多信息所包含:http://ruby-doc.org/core-2.2.0/Module.html#method-i-included