コントローラーでグローバルにアクセスでき、使いやすいクラスまたはシングルトン オブジェクトが必要です。現在、次の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
User はアプリケーションの起動時に一度だけ初期化され、不適切な使用の場合は User が更新されないため、このコードは明らかに適切ではありません。多くの追加手順を実行せずにクラスまたはオブジェクトを使用する機能を節約したいが、新しい接続ごとに新しいグローバル インスタンスを用意したい。それはどのように行われるべきですか?