繁体   English   中英

类SessionsHelper中的行为未包含在类中

[英]Behavior from module SessionsHelper is not included in class

我尝试将会话添加到我的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>

我做错了什么?

提前致谢。

我不确定您的SessionsHelper模块是什么样的,但是您可能想看看使用self.included。 有时称为“混合素”。

我相信像这样构造模块可以帮助您:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM