2010-08-06 11 views
40

Qual è il modo preferito di Monkey Patch in Rails 3?Monkey Patching in Rails 3

Voglio solo aggiungere un metodo alla classe String. Sto più guardando dove posizionare il file.

risposta

72

La directory di inizializzazione è un buon posto per raccogliere tutti quei piccoli scrap. Dato che tendenzialmente esagero con le estensioni core, mi piace creare una cartella chiamata "estensioni" e lanciarle tutte lì dentro.

Quindi, prova /config/initializers/string_extension.rb o /config/initializers/extensions/string.rb o qualcosa di simile. In ogni caso, puoi semplicemente dimenticarti di loro in seguito - Rails li richiederà per te, quindi non hai bisogno di farlo da solo.

+0

Puoi anche organizzarli seguendo questo blog, semplifica il debug e il mantenimento delle patch per le scimmie: http://www.justinweiss.com/blog/2015/01/20/3-ways-to-monkey-patch-without- fare-a-mess / –

0

Se è specifico per una classe, è possibile ridefinire il metodo nella classe per cui lo si necessita. Altrimenti, dipende totalmente da quale parte dell'app vuoi utilizzare il tuo metodo di stringa. Come esempio di apertura di una classe per ridefinire un metodo: http://codepad.org/Cj1LHmQj ma probabilmente sapevi già che avresti potuto farlo.

+0

Se si desidera che il metodo della stringa sia disponibile in molti punti, prendere in considerazione un modulo e inserirlo nella directory lib, incluso se necessario. –