在这种情况下,Rails可以缓存吗?

时间:2012-06-25 23:43:52

标签: ruby-on-rails activerecord

> player.records
Record Load (0.5ms)   SELECT * FROM `records` WHERE (`records`.player_id = 1)

> player.records.first(:conditions => {:metric_id => "IS NOT NULL"})
Record Load (0.5ms)   SELECT * FROM `records` WHERE (`records`.player_id = 1 AND (`records`.`metric_id` = 'IS NOT NULL')) LIMIT 1

有没有办法让第二个查询没有命中数据库,而是使用缓存?当数据已经在内存中时,再次访问数据库似乎有点过分了。

我需要两个结果。我知道Ruby可以遍历这些值,但如果可能的话,我更愿意通过ActiveRecord来实现。我来自Django背景,其中filter()做得很好。

我正在使用Rails 2.3。

1 个答案:

答案 0 :(得分:0)

不,仅仅因为条件不同。

但试着解释一下背景。为什么需要同时使用这两个查询?你不能只使用第二个吗?

如果您需要两者,为什么不能使用Ruby代码过滤数组而不是进行其他查询?