Ruby on rails Rails有办法在请求之间重置类变量吗?
我意识到,它们可以在一个请求中被修改,并且在下一个请求中仍然会被修改。这似乎是不受欢迎的行为,而且可能是一个普遍存在的问题,因为它适用于所有类变量/属性的使用 Rails是否提供了一种机制来清除对类级状态的更改(例如重置为默认值),从而使每个请求都以原始状态启动 如果没有,是否可以添加一种初始化类变量的方法,该方法将在每个请求开始时重新应用?这可以与线程安全存储相结合,使类变量的问题小得多。可能的修改 更新:Ruby on rails Rails有办法在请求之间重置类变量吗?,ruby-on-rails,initialization,lifecycle,class-variables,Ruby On Rails,Initialization,Lifecycle,Class Variables,我意识到,它们可以在一个请求中被修改,并且在下一个请求中仍然会被修改。这似乎是不受欢迎的行为,而且可能是一个普遍存在的问题,因为它适用于所有类变量/属性的使用 Rails是否提供了一种机制来清除对类级状态的更改(例如重置为默认值),从而使每个请求都以原始状态启动 如果没有,是否可以添加一种初始化类变量的方法,该方法将在每个请求开始时重新应用?这可以与线程安全存储相结合,使类变量的问题小得多。可能的修改 更新: 正如我在中所描述的,引起我注意的具体案例是,我正在按每个用户设置ActiveResou
正如我在中所描述的,引起我注意的具体案例是,我正在按每个用户设置ActiveResource::Base.user和密码。如果我未能重置它们,那就意味着代表一个用户的REST请求将在后续页面加载中使用另一个用户的凭据进行 出于好奇,你能举个具体的例子说明你为什么要这样做吗?从表面上看,这听起来像是您在请求对变量进行更改,所以Rails正在按照您的要求进行操作 就答案而言,有几个选项:
- 变量没有自动“切换回默认值”的行为,没有
- 您可以在每个控制器操作结束时手动重置要执行此操作的值
- 您可以编写一个模块来实现这一点(称之为“acts_as_resetable”),然后将该模块包含在需要此功能的类中