> 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。