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

Altri articoli interessanti:

  1. IronRuby: Ruby e Rails su piattaforma .NET
  2. RVM: Installare tante versioni di Ruby e tante versioni di Rails
  3. Rails Best Practices: programmare al meglio in Rails

Questo articolo è stato pubblicato in Web e ha le etichette , , , , , , . Aggiungi ai preferiti: link permanente. I commenti sono chiusi ma puoi lasciare un trackback: Trackback URL.
  • Inserisci il tuo indirizzo di posta per ricevere i prossimi articoli gratis:


    Servizio gestito tramite Feedburner