2010-08-06 5 views
40

Quel est le moyen préféré de Monkey Patch dans Rails 3? Je veux juste ajouter une méthode à la classe String. Je regarde plus où placer le fichier.Singe patcher dans les rails 3

Répondre

72

Le répertoire d'initialisation est un bon endroit pour recueillir tous ces petits morceaux. Depuis que j'ai tendance à aller un peu à la mer avec des extensions de base, j'aime faire un dossier appelé "extensions" et les lancer tous là-dedans.

Donc, essayez /config/initializers/string_extension.rb, ou /config/initializers/extensions/string.rb, ou quelque chose de similaire. De toute façon, vous pouvez simplement les oublier ensuite - Rails les exigera pour vous, donc vous n'avez pas besoin de le faire vous-même.

+0

Vous pouvez également les organiser en suivant ce blog, facilite le débogage et la maintenance des correctifs de singe: http://www.justinweiss.com/blog/2015/01/20/3-ways-to-monkey-patch-without- Mettre le bazar/ –

0

S'il est spécifique à une classe, vous pouvez simplement redéfinir la méthode dans la classe dont vous avez besoin. Sinon, cela dépend totalement de la partie de l'application que vous souhaitez utiliser votre méthode de chaîne. À titre d'exemple d'ouverture d'une classe pour redéfinir une méthode: http://codepad.org/Cj1LHmQj mais, vous saviez probablement déjà que vous pouviez le faire.

+0

Si vous souhaitez que votre méthode de chaîne soit disponible dans de nombreux endroits, considérez un module et placez-le dans le répertoire lib, y compris si nécessaire. –