Problema: evitare di creare più oggetti o più query quando possibile.Usare i presentatori di rotaie - memoizable diventando deprecato in 3.1 - usare || = invece?
Uso i presentatori con le guide come best practice.
Seguo un consiglio che dice che sarebbe opportuno utilizzare "estendere ActiveSupport.Memoizable" (e quindi memoize: metodo (i) per utilizzarli) durante la configurazione di elementi con stile @the_record = record ||= @record
a causa di un paio di problemi - false o nil non vengono memorizzate, quindi la query viene richiamata di nuovo e anche quella memoizable utilizza meglio la cache (cioè la usa!).
Tuttavia vedo che memoizable è sempre deprecato in Rails 3.1 Avvertenze i GitHub sotto carrierwave e con la dichiarazione: "disapprovazione ATTENZIONE: ActiveSupport :: Memoizable è deprecato e sarà rimosso nelle versioni future, è sufficiente utilizzare Rubino modello Memoizzazione invece . (chiamato da estendersi /Users/kain/.rvm/gems/ruby-1.9.3-preview1/bundler/gems/carrierwave-c4459179b0f8/lib/carrierwave/mount.rb:284" .
Forse è passato Qualcuno sa?
Qualche suggerimento sulla procedura migliore da utilizzare in futuro? Utilizzare la sintassi || =? E i problemi precedenti?
Beh, mi sono guardato intorno e forse un'implementazione precedente è stata ritirata. Ad ogni modo andrò con Memoizable ora so che posso fare affidamento su 3.1 Thx Tadman! –
Aspetta Ho trovato l'avviso, è sull'eccellente railsbest corso su presentatori e memoization. Sono conosciuti come il corso 'Rails for Zombies'. Comunque hanno dato le informazioni sulla memoizzazione, hanno detto che le opzioni di ActiveSupport erano le migliori e tuttavia la loro vera sfida per il codice dice "ActiveSupport :: Memoizable (nota: ActiveSupport :: Memoizable è deprecato in Rails 3.1)"! quindi ancora non ne sono sicuro e se diventa deprecato è perché i problemi di cui sopra saranno risolti, ecc. –
Deprecati al punto 3.2: http://guides.rubyonrails.org/3_2_release_notes.html#activesupport_deprecations – m33lky