2012-03-05 6 views
7

He estado usando los carriles durante unos meses, y estoy cómodo escribiendo bastante hasta un proyecto & manipulación de los carriles a mis necesidades, etc.Modificación de rieles: ¿cómo descubren los usuarios avanzados qué se debe cambiar?

Recientemente he estado tratando de conseguir un poco más avanzado, así que he intentado modificar/agregar a la base de código de carriles existente: agregar nuevos métodos de ayuda de formulario, agregar un método de respuestas_ a: pdf, etc. ... y he tenido muchos problemas.

La dificultad está en aprender qué código necesito modificar; dónde se encuentra ese código, y cómo asegurar que no omito el código relacionado en otros archivos. Supongo que hay una manera en que la gente aprende a hacer esto, pero por el momento solo estoy adivinando y esperando.

Supongo que mi pregunta es, ¿cómo hacen los Rails para aprender dónde se edita el código que necesitan modificar & para editarlo? Parece que es algo que debes saber de familiaridad previa, pero supongo que tiene que haber un método simple para entender dónde (y qué) editar.

Cualquier idea apreciados ... Saludos

+0

¡Lo que has descrito es bastante preciso para lo que hago! –

+0

buena pregunta, me gustaría saber cómo otras personas lo hacen. Solo uso el [API doc] (http://apidock.com/rails) para echar un vistazo al código fuente hasta que entiendo la mecánica. Otra forma de obtener conocimiento ... ¡es el desbordamiento de pila! cuando comencé a aprender los rieles, solía escanear todas las preguntas relacionadas con los rieles, y traté de encontrar la respuesta yo mismo. Al hacer esto, aprendí mucho sobre los rieles internos. sin embargo, no estoy seguro de que esta pregunta pertenezca aquí. Tal vez en http://codereview.stackexchange.com? –

Respuesta

3

recomiendo encarecidamente José Valim Crafting Rails Applications

Vas a través de proyectos avanzados, la construcción de los tipos de motores y personalizaciones que le llevará al siguiente nivel en su desarrollo rieles.

Desde el sitio:

Este libro le ayudará a entender el funcionamiento interno de los carriles 3, incluyendo generadores, manipuladores de plantilla, la internacionalización, enrutamiento y respondedores.

+0

Gracias por la respuesta. He leído Artesanía y lo he disfrutado, pero no obtuve mucha información sobre una metodología para comprender partes desconocidas del marco. Una metodología para crear gemas, sí, pero cuando el marco se abrió, parecía haber un enfoque de "simplemente escriba esto" en lugar de cómo se obtendría una comprensión de las partes del marco que se está modificando. – PlankTon

+0

@unclaimedbaggage Si dominaste Crafting, es hora de que bucees. Ejecuta las pruebas de rake, realiza cambios y vuelve a realizar las pruebas. Repetir. No hay visita guiada en ese nivel. –

-2

Lo que estamos pidiendo es cómo MVC obras. Básicamente se puede decir:

1.) ¡Ponga la lógica en el modelo! El modelo es el pivote en el que todo gira.

2.) El controlador es un intermediario entre el modelo y la vista. Aquí no pone ninguna lógica que no esté relacionada con la selección de datos de la base de datos que deberían mostrarse en la vista. Si usa una lógica de selección más de una vez, cree un scope en el Modelo y úselo en el Controlador.

3.) ¡La vista solo está ahí para mostrar cosas! ¡No pones ninguna lógica aquí! Toda la lógica proviene del modelo y los datos provienen del controlador. La única lógica que usa aquí son los bucles a través de las matrices de datos que deberían mostrarse.

Entonces le faltan algunas cosas. Si tiene una tarea relacionada con un servicio externo como, por ejemplo, un Servicio SOAP, ¡también puede escribir una clase para eso! Simplemente sin usar la herencia ActiveRecord :: Base como la generada por el scaffolder. Puede llamar a esta Clase en otros modelos. ¡No ponga esto en el controlador ni copie el código en todas las clases que lo necesiten! Quédese DRY (no se repita). ¡Solo tiene que escribir una clase e incluirla en los otros modelos!

Otra cosa que es una Base de datos básica: ¡No almacene datos que puedan calcularse desde otros campos de la base de datos! Puede agregar métodos que calculen las cosas que necesita pero no comience con duplicados.

+0

Gracias por la respuesta, pero no exactamente lo que estaba buscando. Me siento cómodo usando rieles e integrando guiones de rubí. Extiende/anula el marco en sí mismo que me asusta. ;-) – PlankTon

Cuestiones relacionadas