> 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
2番目のクエリをデータベースにヒットさせず、代わりにキャッシュを使用する方法はありますか?データがすでにメモリにあるときに、データベースに再びアクセスするのは少し過剰に思えます。
両方の結果が必要です。Rubyが値を反復処理できることは承知していますが、可能であればActiveRecordを介して反復処理することをお勧めします。私はDjangoのバックグラウンドから来ており、これはfilter()
うまくいきました。
Rails2.3を使用しています。