Ruby on Rails: Caching di Valori nel Modello
Calcoliamo un valore una sola volta e lo rendiamo disponibile a differenti richieste, fino alla sua scadenza.
class Post < ActiveRecord::Base
@@n_of_comments = nil
def self.n_of_comments
@@n_of_comments ||= self.count_comments
end
def self.count_comments
...
end
def self.flush_n_of_comments
@@n_of_comments = nil
end
...
end
Post.n_of_comments # il calcolo viene eseguito
=> 1037
Post.n_of_comments # il calcolo NON viene eseguito
=> 1037
Post.flush_n_of_comments
=> nil
Post.n_of_comments # il calcolo viene eseguito
=> 1042
Post.count_comments # il calcolo viene eseguito ma la cache non aggiornata
=> 1046
Post.n_of_comments # il calcolo NON viene eseguito
=> 1042
28 Agosto 2007
Categorie: Tutorial, Ruby on Rails, Ruby
Articoli simili
- Rails 2.1 e ottimizzazione Active Record
- HTML.it apre a Ruby e Ruby on Rails
- Ruby on Rails 2.0 disponibile
- NetBeans 6 per Ruby on Rails
- Il futuro prossimo di jRuby