2008-10-21 14 views
9

Ruby on Rails tiene muchas formas de generar JavaScript. Particularmente cuando se trata de Ajax. Desafortunadamente, hay algunos problemas que a menudo veo con el JavaScript que genera.¿Cuánto JavaScript dejas que genere Rails?

  • Rails normalmente utiliza el manejo de eventos en línea.

    <a onclick="somejavascript(); return false;" /> 
    

    Esto generalmente está mal visto, ya que es un comportamiento de mezcla con el XHTML.

  • El JavaScript generado también se basa en gran medida en Prototype. Personalmente, prefiero jQuery.

  • En mi experiencia, la actitud de muchos desarrolladores de Rails ha sido escribir la mayor cantidad posible del código en Ruby. El último paso es generar JavaScript muy repetitivo y de procedimientos. A menudo, este código termina siendo muy inflexible y difícil de depurar.

Por lo tanto, mi pregunta es: ¿cuánto JavaScript se escribe manualmente para sus proyectos y cuánto de su generación del lado del servidor con rieles/Ruby? ¿O hay un medio feliz en el que obtienes los beneficios de ambos? Con una pregunta: si escribe mucho JavaScript manualmente, ¿qué técnicas usa para adaptarlo al modelo MVC?

Respuesta

5

Si prefiere jQuery puede usar el jQuery on Rails Project. Una gota para reemplazar Prototype con jQuery.

Parte de lo que Rails hace con la generación de Javascript es bueno y parte es malo. En los casos malos, escríbelo usted mismo y manténgalo discreto. En un momento dado no se siente cómodo con el Javascript Rails genera, puede continuar y escribirlo usted mismo.

Y asegúrese de revisar esta gran introducción a unobtrusive Javascript que se hizo pensando en Rails.

0

Let Rails hacer tanto como sea posible. Luego, cuando tenga problemas, comience a reescribirlo con versiones codificadas a mano.

0

ninguno, use jquery si es necesario. Ajax y es decir, js bugs son difíciles de localizar

4

Solía ​​trabajar en Symfony (un clon de Rails) y al principio, usábamos una gran cantidad de ayudantes de Javascript. Los requisitos del cliente nos llevaron (¡a mí!) A tener que escribir mucho código que los ayudantes simplemente no podían generar. Finalmente llegué a la conclusión de que prefiero no usar helpers en absoluto.

La mejora progresiva es el camino a seguir, en mi opinión. Genere HTML compatible con estándares que funcione sin JavaScript habilitado, luego agregue la elegante funcionalidad en documentos listos.

Por cierto, también cambié de Prototype a jQuery y no deseo volver atrás. En mi opinión, jQuery es más adecuado para la mejora progresiva.

+0

Tuve los mismos problemas con los ayudantes de CakePHP. Terminó la codificación manual en jQuery mucho más rápido y más fácil. – Geoff

Cuestiones relacionadas