如何管理多个请求的变量生命周期

时间:2013-12-27 08:54:45

标签: ruby-on-rails ruby ruby-on-rails-3 variables global-variables

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

示例变量:

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

1 个答案:

答案 0 :(得分:1)

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

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

数据库是两个事件中唯一可以轻松访问的数据源,可以可靠地保存最新值。

由于这是针对RESTful API的,因此不应存在其他状态信息 - 所有内容都应位于当前请求或数据库中。

如果需要,可以缓存数据以获得性能,但Ruby变量不是一种可靠或有效的方法(因为在Web服务器上会有多个独立运行的Ruby进程,而您无法管理它们来自控制器代码) - 相反,如果查询很慢并且在许多API事件中需要其结果,您可能需要考虑类似memcached的内容。但是,除非存在真正的性能问题,否则通常应该避免缓存数据 - 因为您可能还需要处理缓存失效。

相关问题