如何为多个请求管理变量的生存期



我在控制器的create方法中有一个变量,有没有办法在update方法中重用具有相同值的变量。我该如何传递,或者如何维持多个请求的生存期?

示例变量:

@m = Issue.where( :project_id => @project.id ).where( :issue => "xyz" ) 

据我所知,您的要求是在单独调用(更新)期间重用在对API的一次调用(用于创建API实体)期间访问的数据。在第一种情况下,数据是从数据库中提取的。

只需使用相同的查询再次获取数据

数据库是在这两个事件中唯一易于访问的数据源,它将可靠地保存最新的值。

由于这是针对RESTful API的,所以不应该有其他状态信息——所有信息都应该在当前请求或数据库中。

如果需要,您可以缓存数据以提高性能,但Ruby变量不是一种可靠或有效的方法(因为web服务器上会有多个Ruby进程独立运行,并且您无法从控制器代码中管理它们)-相反,如果查询速度缓慢,并且许多API事件都需要它的结果,您可能需要考虑memcached之类的方法。但是,通常应该避免缓存数据,除非您有真正的性能问题,因为您可能也需要处理缓存无效。

最新更新