2011-01-25 15 views
5

¿Dónde está la ubicación recomendada para bibliotecas en Rails 3? ¿Es tan simple como 'lib'?¿A dónde deberían ir las bibliotecas en Rails 3?

No estoy seguro porque 'lib' parece más un remanente de Rails 2, especialmente teniendo en cuenta que ya no se carga automáticamente (y aparentemente hubo mucha discusión al respecto).

Los inicializadores son más para tareas de inicialización (obviamente), como anulaciones.

Específicamente, tengo un pequeño módulo para el manejo de archivos adjuntos (Paperclip no cabe aquí) que es demasiado grande y distinto para incluir en mi modelo, pero no es genérico ni suficientemente valioso como para implementarlo como una joya.

Desde el punto de vista de la funcionalidad, vive en el medio entre el modelo, la vista y el controlador. Esto hace que suene como un ayudante, pero en Rails los ayudantes están destinados a vistas AFAIK.

¿Debería ponerlo en 'lib' y cargarlo automáticamente en application.rb? O tal vez podría crear un generador de formularios personalizado para manejar la presentación (o ambas cosas).

Sé cómo hacerlo funcionar, pero espero aprender algo nuevo. :)

Respuesta

10

lib sigue siendo el lugar adecuado para poner este tipo de cosas.

La carga automática se eliminó en Rails 3 debido a la forma en que funcionan los motores, pero principalmente porque es fácil agregarlo a los carriles de autocarga si lo desea cargado automáticamente y, si no, puede requerir según sea necesario. lib todavía está en la ruta de carga, por lo que no necesita especificar donde es el módulo o clase que necesita.

Está en lo cierto, los ayudantes están destinados a la vista y no serían el lugar indicado para poner ninguna lógica relacionada con el modelo.

Pondré el módulo en lib, y lo incluiré en su modelo según sea necesario.

+0

Respuesta muy útil, en particular los detalles sobre la necesidad de un módulo que no se carga automáticamente. ¡Gracias! –

Cuestiones relacionadas