我在控制器中的create方法中有一个变量,有没有办法在update方法中重用具有相同值的变量。我如何通过这个,或者我如何维持多个请求的生命周期?
示例变量:
@m = Issue.where( :project_id => @project.id ).where( :issue => "xyz" )
答案 0 :(得分:1)
据我了解,您的要求是在单独调用(更新)期间重用一次调用API(用于创建API实体)时访问的数据。在第一种情况下,数据从数据库中获取。
只需使用相同的查询再次获取数据。
数据库是两个事件中唯一可以轻松访问的数据源,可以可靠地保存最新值。
由于这是针对RESTful API的,因此不应存在其他状态信息 - 所有内容都应位于当前请求或数据库中。
如果需要,可以缓存数据以获得性能,但Ruby变量不是一种可靠或有效的方法(因为在Web服务器上会有多个独立运行的Ruby进程,而您无法管理它们来自控制器代码) - 相反,如果查询很慢并且在许多API事件中需要其结果,您可能需要考虑类似memcached
的内容。但是,除非存在真正的性能问题,否则通常应该避免缓存数据 - 因为您可能还需要处理缓存失效。