【发布时间】:2013-08-23 12:30:51
【问题描述】:
我想在模块中创建一个方法(出于分组原因),可以称为module.method,如下所示:
helpers do
module UserSession
def logged_in?
not session[:email].nil?
end
def logout!
session[:email] = nil
end
end
end
但是当我尝试使用UserSession.logged_in? 调用它时,它说logged_in 不是UserSession 的方法
未定义的方法`logged_in?'对于用户会话:模块
当我将该方法作为 UserSession 的方法移动时:
helpers do
module UserSession
def self.logged_in?
not session[:email].nil? # error
end
def self.logout!
session[:email] = nil
end
end
end
它给出了一个错误,我无法访问 session 变量
UserSession:Module 的未定义局部变量或方法“会话”
这个问题的最佳解决方案是什么?
【问题讨论】:
-
include UserSession? -
那么,你是在暗示我应该在 sinatra 的 helpers 方法之外制作模块,然后包含它吗?它会有同样的问题(无法访问会话变量)