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

AddThis Social Bookmark Button

Articoli simili

Commenti

Comments are closed.