关闭浏览器后,销毁全局变量或将全局变量设置为 nil



我在rails应用程序控制器中将一个全局变量声明为 $decrypted_attessec = "verified decrypted cookie",并且我正在所有控制器中访问它。关闭浏览器窗口后,全局变量必须设置为 nil 或销毁,这没有完成。

就我而言,它始终保持在这种情况下"verified decrypted cookie"的初始值,但是,服务器重新启动会破坏全局变量并重新初始化它,我也希望在关闭浏览器时完成。

我的代码:

application_controller.rb

 def validate_user
    $decrypted_attessec = "verfied decrypted cookie"
      #I am getting value of $decrypted_attessec as verfied decrypted cookie from different action which would be either an empty or non-empty string
    if !$decrypted_attessec.empty?
      #redirect_to clicked path
    else
      redirect_to "login url"
    end
  end

Welcome_controller.rb

if $decrypted_attessec.empty?
  before_action :validate_user, :except => [:index, :csplogin]
end

我的代码哪里出错了?

首先,@global_variable根本不是一个全局变量。事实上,它是类对象的实例变量。

其次,全局变量是用前面的$定义的,例如$global_variable。请参阅这篇优秀的文章,以了解有关使用全局变量的含义的更多信息。

最后但并非最不重要的一点是,全局变量将不依赖于浏览器的关闭和打开。我建议更多地阐述您的用例,以便更好地解决问题。

相关内容

  • 没有找到相关文章

最新更新