Ruby on Rails                      Master Universitario en Desarrollo e Integración de                                    ...
¿Qué hicimos ayer?                     • Registro de usuarios                     • Login y logout de usuarios            ...
Algunas aclaracionesmiércoles 2 de febrero de 2011
Vistas y Helpersmiércoles 2 de febrero de 2011
/app/controllers/                                 sessions_controller.rb                                  /logs/developmen...
Rutas y helpers        /app/layouts/     application.html.erb       /app/views/sessions/          new.html.erbmiércoles 2 ...
Las rutas definen los siguientes helpers que podemos usar en los   links y en los formularios y nos ahorran escribir direcc...
¿Preguntas sobre lo de                             ayer?miércoles 2 de febrero de 2011
Dónde lo dejamos ayer:                         https://github.com/esti/deusto_app/zipball/                                ...
Test funcionales                            /test/functional/users_controller_test.rbmiércoles 2 de febrero de 2011
... para login/logout también                       /test/functionals/sessions_controller_test.rbmiércoles 2 de febrero de...
Fixtures    Para comprobar que un usuario ya registrado puede loguearse, necesitamos poblar la base de datos de test con  ...
Ejecutamos todos los tests, tanto Unit como Functional                                 $ rake testmiércoles 2 de febrero d...
Ejercicios                     • users_controller_test.rb: Comprobar                             que un usuario que pone u...
Siguiente            Ahora que ya estamos loggeados, necesitamos poder                             publicar tweetsmiércole...
Demomiércoles 2 de febrero de 2011
Modelo Tweet$ rails generate scaffold Tweet content:string user:references                                   $ rake db:mig...
Modelo TweetActive Record nos “regala” métodos para definir relaciones                     entre modelosmiércoles 2 de febr...
Rails console                                   $ rails consolemiércoles 2 de febrero de 2011
Lo que sale del scaffold   Lo que queremos       conseguirmiércoles 2 de febrero de 2011
Poblamos la base de datos con datos                     de prueba con un “rake task”                                 /lib/...
/app/views/tweets/index.html.erb                                                           Lo que sale del scaffold       ...
Helpermiércoles 2 de febrero de 2011
¡A programar!miércoles 2 de febrero de 2011
Ahora queremos ahorrarle un click al usuario incluyendo el   el formulario directamente en el listado de tweetsmiércoles 2...
Scaffold nos ha creado automáticamente el formulario de crear un                   tweet /app/views/tweets/_form.html.erbm...
miércoles 2 de febrero de 2011
Nos aseguramos de que para poder                                  tweetear, te has identificado antes                      ...
Esta es la función que comprueba                                 que el usuario está loggeado antes                       ...
Ahora que tenemos la funcionalidad principal de nuestra     applicación, hacemos la “home” de nuestra web sea el          ...
Demomiércoles 2 de febrero de 2011
Es hora de hacer un poco de limpieza: el código que muestra los errores de validación, es       prácticamente el mismo par...
Hacemos un “partial” (/app/views/shared/                                 _error_messages.html.erb) que contiene ese       ...
Tests!miércoles 2 de febrero de 2011
/test/units/tweet_test.rbmiércoles 2 de febrero de 2011
/test/controllers/tweets_controller_test.rbmiércoles 2 de febrero de 2011
/test/controllers/tweets_controller_test.rbmiércoles 2 de febrero de 2011
La función de hacer login en un test la vamos a necesitar en    muchos sitios, por eso la ponemos en el helper /test/     ...
Nuestro primer test de integraciónmiércoles 2 de febrero de 2011
¡Os toca!miércoles 2 de febrero de 2011
Ajaxmiércoles 2 de febrero de 2011
Demomiércoles 2 de febrero de 2011
Prototype: Librería Javascript                                  Así incluimos la                                 librería ...
Le decimos al formulario                                              que queremos que funcione                           ...
Ahora tenemos que hacer que la respuesta del servidor sea     la petición es “remota”. Para eso vale el bloque            ...
/app/views/tweets/create.js.erb         Contiene la respuesta del servidor para el formulario                         remo...
Hacemos un partial                                                                       que contiene la                  ...
miércoles 2 de febrero de 2011
Upcoming SlideShare
Loading in...5
×

Curso de Ruby on Rails para el Master de Deusto. Día 2

1,900

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,900
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Curso de Ruby on Rails para el Master de Deusto. Día 2

  1. 1. Ruby on Rails Master Universitario en Desarrollo e Integración de Soluciones Software Universidad de Deusto Día 2miércoles 2 de febrero de 2011
  2. 2. ¿Qué hicimos ayer? • Registro de usuarios • Login y logout de usuarios • Tests unitarios del modelo usuariosmiércoles 2 de febrero de 2011
  3. 3. Algunas aclaracionesmiércoles 2 de febrero de 2011
  4. 4. Vistas y Helpersmiércoles 2 de febrero de 2011
  5. 5. /app/controllers/ sessions_controller.rb /logs/development.logmiércoles 2 de febrero de 2011
  6. 6. Rutas y helpers /app/layouts/ application.html.erb /app/views/sessions/ new.html.erbmiércoles 2 de febrero de 2011
  7. 7. Las rutas definen los siguientes helpers que podemos usar en los links y en los formularios y nos ahorran escribir direcciones largas. Sólo hay que poner el sufijo “_path” a la primera columna Ejemplos: •link_to users_path •link_to new_user_path •form_for sessions_path (porque es POST) •new_session_pathmiércoles 2 de febrero de 2011
  8. 8. ¿Preguntas sobre lo de ayer?miércoles 2 de febrero de 2011
  9. 9. Dónde lo dejamos ayer: https://github.com/esti/deusto_app/zipball/ 2_signup_and_login Dónde vamos a llegar ahora: https://github.com/esti/deusto_app/zipball/3_tweetsmiércoles 2 de febrero de 2011
  10. 10. Test funcionales /test/functional/users_controller_test.rbmiércoles 2 de febrero de 2011
  11. 11. ... para login/logout también /test/functionals/sessions_controller_test.rbmiércoles 2 de febrero de 2011
  12. 12. Fixtures Para comprobar que un usuario ya registrado puede loguearse, necesitamos poblar la base de datos de test con usuarios de prueba /db/fixtures/users.rbmiércoles 2 de febrero de 2011
  13. 13. Ejecutamos todos los tests, tanto Unit como Functional $ rake testmiércoles 2 de febrero de 2011
  14. 14. Ejercicios • users_controller_test.rb: Comprobar que un usuario que pone un email no válido al registrarse, vuelve al formulario y le sale el error de validación. • sessions_controller_test.rb: Comprobar que un usuario inexistente en la base de datos no puede entrar.miércoles 2 de febrero de 2011
  15. 15. Siguiente Ahora que ya estamos loggeados, necesitamos poder publicar tweetsmiércoles 2 de febrero de 2011
  16. 16. Demomiércoles 2 de febrero de 2011
  17. 17. Modelo Tweet$ rails generate scaffold Tweet content:string user:references $ rake db:migratemiércoles 2 de febrero de 2011
  18. 18. Modelo TweetActive Record nos “regala” métodos para definir relaciones entre modelosmiércoles 2 de febrero de 2011
  19. 19. Rails console $ rails consolemiércoles 2 de febrero de 2011
  20. 20. Lo que sale del scaffold Lo que queremos conseguirmiércoles 2 de febrero de 2011
  21. 21. Poblamos la base de datos con datos de prueba con un “rake task” /lib/tasks/tweets.rakemiércoles 2 de febrero de 2011
  22. 22. /app/views/tweets/index.html.erb Lo que sale del scaffold Modificadomiércoles 2 de febrero de 2011
  23. 23. Helpermiércoles 2 de febrero de 2011
  24. 24. ¡A programar!miércoles 2 de febrero de 2011
  25. 25. Ahora queremos ahorrarle un click al usuario incluyendo el el formulario directamente en el listado de tweetsmiércoles 2 de febrero de 2011
  26. 26. Scaffold nos ha creado automáticamente el formulario de crear un tweet /app/views/tweets/_form.html.erbmiércoles 2 de febrero de 2011
  27. 27. miércoles 2 de febrero de 2011
  28. 28. Nos aseguramos de que para poder tweetear, te has identificado antes Y al guardar el tweet, nos aseguramos de asignárselo al usuario correspondientemiércoles 2 de febrero de 2011
  29. 29. Esta es la función que comprueba que el usuario está loggeado antes de poder tweetearmiércoles 2 de febrero de 2011
  30. 30. Ahora que tenemos la funcionalidad principal de nuestra applicación, hacemos la “home” de nuestra web sea el listado de tweetsmiércoles 2 de febrero de 2011
  31. 31. Demomiércoles 2 de febrero de 2011
  32. 32. Es hora de hacer un poco de limpieza: el código que muestra los errores de validación, es prácticamente el mismo para el formulario de tweets y para el de usuarios. /app/views/tweets/_form.html.erb /app/views/users/_form.html.erbmiércoles 2 de febrero de 2011
  33. 33. Hacemos un “partial” (/app/views/shared/ _error_messages.html.erb) que contiene ese código duplicado Y lo incluimos en los dos formulariosmiércoles 2 de febrero de 2011
  34. 34. Tests!miércoles 2 de febrero de 2011
  35. 35. /test/units/tweet_test.rbmiércoles 2 de febrero de 2011
  36. 36. /test/controllers/tweets_controller_test.rbmiércoles 2 de febrero de 2011
  37. 37. /test/controllers/tweets_controller_test.rbmiércoles 2 de febrero de 2011
  38. 38. La función de hacer login en un test la vamos a necesitar en muchos sitios, por eso la ponemos en el helper /test/ test_helper.rbmiércoles 2 de febrero de 2011
  39. 39. Nuestro primer test de integraciónmiércoles 2 de febrero de 2011
  40. 40. ¡Os toca!miércoles 2 de febrero de 2011
  41. 41. Ajaxmiércoles 2 de febrero de 2011
  42. 42. Demomiércoles 2 de febrero de 2011
  43. 43. Prototype: Librería Javascript Así incluimos la librería javascript Este es el HTML que generamiércoles 2 de febrero de 2011
  44. 44. Le decimos al formulario que queremos que funcione de manera “remota” Genera una etiqueta personalizada HTML5 que incluye en el formulario Y el javascript que trae Rails incluye una función que todos los formularios que tienen esta etiqueta se manden de manera remotamiércoles 2 de febrero de 2011
  45. 45. Ahora tenemos que hacer que la respuesta del servidor sea la petición es “remota”. Para eso vale el bloque “respond_to”! render “app/views/tweets/create.js.erb”miércoles 2 de febrero de 2011
  46. 46. /app/views/tweets/create.js.erb Contiene la respuesta del servidor para el formulario remoto, en javascript.miércoles 2 de febrero de 2011
  47. 47. Hacemos un partial que contiene la porción de HTML que corresponde a cada tweet, que es lo que incluimos al principio de la lista cuando alquien crea un nuevo /app/views/tweets/_tweet.html.erb tweet Y ya que lo tenemos lo reutilizamos en el /app/views/tweets/index.html.erb listado de tweetsmiércoles 2 de febrero de 2011
  48. 48. miércoles 2 de febrero de 2011
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×