我已经提供了一些示例代码,用于存储与ENV数组中当前用户相关的数据:
ENV['token'] = request.env['omniauth.auth']['credentials']['token']
我是rails的新手,据我所知,这是传递给Ruby / Rails的环境变量数组。
我认为这不适合放置信息吗?相反它应该在用户会话中?
答案 0 :(得分:1)
我同意。如果要对ENV
进行修改,则应该在脚本执行的最开始。由于这是针对每个请求而更改的数据,因此它不应该是全局的。它不仅奇怪,如果您的应用程序最终在一个堆栈中,一次运行多个请求并且在请求使用完毕之前此值发生更改,则可能会导致问题。
由于我们正在使用request
,我打赌我们是在控制器的上下文中。因此,我建议将其设置为可在控制器和视图中的任何位置访问的实例变量@token
,但与此请求相关联。这给了它一个很大的范围,但不超过你的需要。
当然,这假设我们正在讨论控制器代码。如果是这样,你去,但我仍然想要更多的背景,以确保我们不谈论,例如,Rack中间件或更复杂的东西。