我需要一些可在控制器中全局访问且易于使用的类或单例对象。现在它在这样的libs/
文件夹中实现:
class User
class << self
@user = nil
attr_reader :uid, :name
def init session
if session[:user_info].nil?
@user = nil
end
@user = session_data[:user]
end
def signed_in?
@user.nil? ? false : true
end
def guest?
not signed_in?
end
end
end
这段代码显然不好,因为用户只在应用程序启动时初始化一次,如果使用不当,用户将不会被更新。我想保存使用类或对象的能力,而无需太多附加步骤,但每个新连接都有一个新的全局实例。应该怎么做?