2010-08-06 6 views
40

¿Cuál es la mejor forma de mono Patch en Rails 3?mono de parches en Rails 3

sólo quiero añadir un método a la clase String. Estoy buscando dónde colocar el archivo.

Respuesta

72

El directorio de inicialización es un buen lugar para recoger todos esos pequeños retazos. Dado que tiendo a ir un poco por la borda con las extensiones principales, me gusta hacer una carpeta allí llamada "extensiones" y echarlas todas allí.

Por lo tanto, pruebe /config/initializers/string_extension.rb, o /config/initializers/extensions/string.rb, o algo similar. De cualquier forma, puedes olvidarte de ellos luego: Rails los requerirá para ti, por lo que no es necesario que lo hagas tú mismo.

+0

También puede organizarlos siguiendo este blog, hace que sea más fácil depurar y mantener parches de mono: http://www.justinweiss.com/blog/2015/01/20/3-ways-to-monkey-patch-without- haciendo un lío/ –

0

Si es específica de clase sólo podría volver a definir el método de la clase que lo necesite para. De lo contrario, depende totalmente de la parte de la aplicación en la que desee usar su método de cadena. Como un ejemplo de la apertura de una clase de redefinir un método: http://codepad.org/Cj1LHmQj pero, probablemente ya sabía que se podía hacer eso.

+0

Si desea que su método de cadena disponibles en muchos lugares, considere un módulo y poner esto en el directorio lib, incluyendo en caso necesario. –