tôi muốn thực hiện một phương pháp bên trong một mô-đun (đối với nhóm nguyên nhân) có thể được gọi là một module.method
, một cái gì đó như thế này:Làm thế nào để làm cho helper mô-đun trong Sinatra
helpers do
module UserSession
def logged_in?
not session[:email].nil?
end
def logout!
session[:email] = nil
end
end
end
nhưng khi tôi cố gắng để gọi nó là sử dụng UserSession.logged_in?
nó nói rằng logged_in không phải là phương pháp của UserSession
phương thức chưa xác định `logged_in? ' cho UserSession: Module
khi tôi di chuyển phương pháp như phương pháp UserSession của:
helpers do
module UserSession
def self.logged_in?
not session[:email].nil? # error
end
def self.logout!
session[:email] = nil
end
end
end
nó mang lại cho một lỗi, mà tôi không thể truy cập vào session
biến
biến địa phương không xác định hoặc phương pháp `phiên 'cho UserSession: Mô-đun
solutio tốt nhất là gì n cho vấn đề này?
'bao gồm UserSession'? – shime
vì vậy, bạn ngụ ý rằng tôi nên làm cho mô-đun bên ngoài phương pháp giúp đỡ của Sinatra, sau đó bao gồm nó? nó sẽ có cùng một vấn đề (không thể truy cập biến session) – Kokizzu