2011-01-25 13 views
5

Dov'è il percorso consigliato per le librerie in Rails 3? È semplice come "lib"?Dove dovrebbero andare le librerie in Rails 3?

Non sono sicuro perché "lib" sembra più un residuo di Rails 2, soprattutto considerando che non è più caricato automaticamente (e ci sono state molte discussioni a riguardo, apparentemente).

Gli inizializzatori sono più per (ovviamente) attività di inizializzazione come le sostituzioni.

In particolare, ho un piccolo modulo per la gestione degli allegati (Paperclip non si adatta qui) che è troppo grande e distinto da includere nel mio modello, ma non generico o abbastanza utile da implementare come gemma.

Dal punto di vista della funzionalità, vive da qualche parte nel mezzo tra il modello, la vista e il controller. Questo fa sembrare un aiuto, ma in Rails gli helper sono destinati alle visualizzazioni AFAIK.

Dovrei semplicemente metterlo in "lib" e caricarlo in application.rb? O forse potrei creare un generatore di moduli personalizzato per gestire la presentazione (o entrambi).

So come farlo funzionare, ma spero di imparare qualcosa di nuovo. :)

risposta

10

lib è ancora il posto giusto per mettere questo tipo di cose.

Il caricamento automatico di lib è stato rimosso in Rails 3 a causa del modo in cui i motori funzionano, ma principalmente perché è semplice aggiungerlo ai percorsi autoload se lo si desidera venga caricato automaticamente e in caso contrario, è possibile richiedere secondo necessità. lib è ancora nel percorso di caricamento, quindi non è necessario specificare dove il modulo o la classe che stai richiedendo.

Sei corretto, gli helper sono concepiti per la vista e non sarebbero il posto dove mettere qualsiasi logica relativa al modello.

Avrei messo il modulo in lib e richiesto e incluso nel modello in base alle esigenze.

+0

Risposta molto utile, in particolare i dettagli sulla richiesta di un modulo che non viene caricato automaticamente. Grazie! –

Problemi correlati