SlideShare una empresa de Scribd logo
Ruby on Rails
                      Master Universitario en Desarrollo e Integración de
                                   Soluciones de Software

                                    Universidad de Deusto

                                            Día 1


miércoles 2 de febrero de 2011
¿Qué es Rails?
                     • Plataforma Open Source para la creación
                             de sitios web.
                     • Puntos fuertes:
                      • Baja barrera de entrada
                      • Favorece el desarrollo ágil
                      • Se programa en Ruby
                      • Comunidad muy activa, despierta y
                                 dispuesta a ayudar
                           • ...
miércoles 2 de febrero de 2011
¿Quién usa Rails?

                                                                  shopify.com
                    twitter.com
                                                 basecamphq.com
                                    github.com


                                                                  justin.tv
      yellowpages.com
                                          pragprog.com



miércoles 2 de febrero de 2011
¿Qué vamos a construir?




miércoles 2 de febrero de 2011
¿Qué vamos a construir,
                            hoy?

                 • Que nuestros futuros usuarios puedan
                         registrarse y entrar en la aplicación usando
                         su login y contraseña
                 • http://slidesha.re/h4xuXd


miércoles 2 de febrero de 2011
Lugares de referencia
                     • http://railstutorial.org
                     • Documentación del API de Rails:
                             http://api.rubyonrails.org ó http://railsapi.com
                     • Rails Guides:
                             http://guides.rubyonrails.org/
                     • “Chuletas”:
                             http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf
miércoles 2 de febrero de 2011
Instalación


                     • Windows: Rails installer
                     • ssh ror<n>@ror.deusto.efaber.net


miércoles 2 de febrero de 2011
MVC




                                 Source: http://www.railstutorial.org
miércoles 2 de febrero de 2011
Esqueleto de nueva aplicación
            [esti@local] $ rails new deusto_app
                 create README                    create   db
                 create Rakefile                   create   lib
                 create Gemfile                    create   log
                 create app                       create   public
                 create app/controllers/          create   public/images
                 create app/helpers/              create   public/stylesheets
                                                  create   public/javascripts
                 create app/mailers/
                                                  create   script
                 create app/models/
                                                  create   test
                 create app/views/                create   vendor/plugins
                create config
                create config/routes.rb
                create config/application.rb
                create config/environment.rb
                create config/initializers
                create config/locales
                create config/boot.rb
                create config/database.yml
miércoles 2 de febrero de 2011
¿Y ahora qué?
                     Rails viene con muchas tareas predefinidas
                     para ponernos en marcha rápidamente

                          •$ cd deusto_app
                          •$ rails --help
                          •$ rails generate --help
                          •$ rake -T



miércoles 2 de febrero de 2011
miércoles 2 de febrero de 2011
$ rails server
                                 http://localhost:3000


                                         Up
                                            a   nd
                                                     ru
                                                         nn
                                                              ing
                                                                 !




miércoles 2 de febrero de 2011
Creación de usuarios
         $ rails generate scaffold User name:string email:string password:string

                create           db/migrate/20110128102008_create_users.rb
                create           app/models/user.rb
                create           test/unit/user_test.rb
                create           test/fixtures/users.yml
                route            resources :users
                create           app/controllers/users_controller.rb
                create           app/views/users
                create           app/views/users/index.html.erb
                create           app/views/users/edit.html.erb
                create           app/views/users/show.html.erb
                create           app/views/users/new.html.erb
                create           app/views/users/_form.html.erb
                create           test/functional/users_controller_test.rb
                create           app/helpers/users_helper.rb
                create           test/unit/helpers/users_helper_test.rb
                create           public/stylesheets/scaffold.css


miércoles 2 de febrero de 2011
Creación de usuarios
         $ rails generate scaffold User name:string email:string password:string

                create           db/migrate/20110128102008_create_users.rb   !!!
                create           app/models/user.rb
                create           test/unit/user_test.rb
                create           test/fixtures/users.yml
                route            resources :users
                create           app/controllers/users_controller.rb
                create           app/views/users
                create           app/views/users/index.html.erb
                create           app/views/users/edit.html.erb
                create           app/views/users/show.html.erb
                create           app/views/users/new.html.erb
                create           app/views/users/_form.html.erb
                create           test/functional/users_controller_test.rb
                create           app/helpers/users_helper.rb
                create           test/unit/helpers/users_helper_test.rb
                create           public/stylesheets/scaffold.css


miércoles 2 de febrero de 2011
La base de datos
                          /db/migrate/<fechahora>_create_users.rb




miércoles 2 de febrero de 2011
$ rake db:migrate




miércoles 2 de febrero de 2011
http://localhost:3000/users



                                                         Voi
                                                             l a!




miércoles 2 de febrero de 2011
Modelo
                                 /app/models/user.rb




miércoles 2 de febrero de 2011
Controlador
                                 app/controllers/users_controller.rb




miércoles 2 de febrero de 2011
Vistas
                                 /app/views/users/index.html.erb




miércoles 2 de febrero de 2011
Rutas




miércoles 2 de febrero de 2011
Demo de scaffold de
                               usuarios




miércoles 2 de febrero de 2011
Mu
                                   cho
                                         me
                                           jor
                                              !




miércoles 2 de febrero de 2011
Introducir algunos records con emails inválidos,
                           duplicados, en blanco...




                                                !!!!!!
                                                         !!




miércoles 2 de febrero de 2011
Validaciones
 ActiveRecord nos da “gratis” métodos para validar los
 campos que introducimos




miércoles 2 de febrero de 2011
Y podemos visualizar los errores de validación
               en el formulario




miércoles 2 de febrero de 2011
Tests

                     • Unit tests: Testean la funcionalidad del
                             modelo
                     • Functional tests: Testean la funcionalidad del
                             controlador y las vistas
                     • Integration tests: Testean el flujo de una
                             visita típica a la web



miércoles 2 de febrero de 2011
Unit Test del modelo User
                                 /tests/unit/user_test.rb


                                  rake db:test:prepare




miércoles 2 de febrero de 2011
Unit Test del modelo User 1/2




miércoles 2 de febrero de 2011
Unit Test del modelo User 2/2




miércoles 2 de febrero de 2011
Ejecutamos el test
             $ cd test
             $ ruby unit/test_user.rb




miércoles 2 de febrero de 2011
¡Os toca!



miércoles 2 de febrero de 2011
Empezamos de dónde lo habíamos dejado:
    $ git clone git://github.com/esti/deusto_app.git
    $ git checkout -b 1_user_model 1_user_model

    Ó
    https://github.com/esti/deusto_app/tree/user_model




miércoles 2 de febrero de 2011
Controlador

                                      render /app/views/users/index.html.erb




                                      render /app/views/users/show.html.erb




                                      render /app/views/users/new.html.erb


miércoles 2 de febrero de 2011
ActiveRecord

                     • User.all
                     • User.all.where(:role => ‘admin’).order
                             (:created_at => ‘desc’)
                     • User.find(18)
                     • User.destroy([1,2,3,4])
                                     http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf

miércoles 2 de febrero de 2011
ActiveRecord
                  Lazy loading:
                      users = User.all.where(:role => “admin”)

                      if params[:order]
                          users = users.order(params[:order])
                      end

                      users.each {|user| user.name} -> Hasta
                      aquí no se toca la base de datos




miércoles 2 de febrero de 2011
Rails console
                                   $ rails console
    La consola rails como el interprete “irb” de Ruby pero con acceso a toda la aplicación
     rails, con todas las clases, métodos, etc. Es muy útil para hacer pruebas y debugging




miércoles 2 de febrero de 2011
Create y update




miércoles 2 de febrero de 2011
Rutas REST
                           ¿Cómo es posible que aparentemente la
                          misma ruta sirva para diferentes acciones?




miércoles 2 de febrero de 2011
Las
                                       rut
                                          as n
                                              os l
                                                     o ex
                                                         plic
                                                             an!




miércoles 2 de febrero de 2011
Rutas
                                           /config/routes.rb




 $ rake routes
   users     GET                 /users(.:format)       {:action=>"index", :controller=>"users"}
             POST                /users(.:format)       {:action=>"create", :controller=>"users"}
   new_user GET                  /users/new(.:format)   {:action=>"new", :controller=>"users"}
   edit_user GET                 /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
   user      GET                 /users/:id(.:format)      {:action=>"show", :controller=>"users"}
             PUT                 /users/:id(.:format)   {:action=>"update", :controller=>"users"}
             DELETE              /users/:id(.:format)   {:action=>"destroy", :controller=>"users"}




miércoles 2 de febrero de 2011
Registro real
        No necesitamos una persona que registre a todos los
        usuarios, sino que cada uno se pueda dar de alta sólo




miércoles 2 de febrero de 2011
Modificamos el tipo del campo de la contraseña
                          y añadimos confirmación




miércoles 2 de febrero de 2011
El campo de confirmación no existe porque no es una
        columna de la tabla en la base de datos. Tenemos que
               definirlo en el modelo explícitamente.




miércoles 2 de febrero de 2011
Definimos el atributo password_confirmation y lo
                       añadimos en las validaciones




miércoles 2 de febrero de 2011
miércoles 2 de febrero de 2011
Demo



miércoles 2 de febrero de 2011
Ahora que el usuario se puede registrar, necesitamos que
pueda hacer login para que luego podamos identificar quién
                     hace cada tweet.

                             $ rails generate controller sessions new




miércoles 2 de febrero de 2011
El usuario va a poder identificarse usando su email y la
                  contraseña que dio al registrarse




miércoles 2 de febrero de 2011
Tenemos que definir el método User.authenticate




miércoles 2 de febrero de 2011
Preparamos el formulario para que el usuario pueda hacer
            login con el email y la contraseña
                                 /app/views/sessions/new.html.erb




  El HTML que genera


miércoles 2 de febrero de 2011
Y definimos unas URL cortas más bonitas
                                 •/signup: para registrarse
                                 •/login: para entrar
                                 •/logout: para salir




miércoles 2 de febrero de 2011
Necesitamos links a login/logout en todas las páginas
            de la web. Para esto están los “layouts”. Son las
            plantillas donde suelen ir la cabecera y el pie de
                    página comunes a todas las páginas




miércoles 2 de febrero de 2011
Plantilla principal
                                 /app/views/layouts/application.html.erb




miércoles 2 de febrero de 2011
Necesitamos una función que nos diga si el usuario
                            está loggeado o no
                 /app/controllers/application_controller.rb




miércoles 2 de febrero de 2011
Y ponerlo todo un poco más bonito
                                  /public/stylesheets/application.css




miércoles 2 de febrero de 2011
Demo




miércoles 2 de febrero de 2011

Más contenido relacionado

ODP
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
PDF
Ruby On Rails (Parte 1. Introducción)
PDF
Ruby On Rails (Parte II))
PDF
Ruby Mola (y por qué)
PDF
Curso de introdução ao ruby
PDF
Curso TDD Ruby on Rails #03: Tests unitarios
PPTX
Ruby 101 session 2
PDF
Curso TDD Ruby on Rails #02: Test Driven Development
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Ruby On Rails (Parte 1. Introducción)
Ruby On Rails (Parte II))
Ruby Mola (y por qué)
Curso de introdução ao ruby
Curso TDD Ruby on Rails #03: Tests unitarios
Ruby 101 session 2
Curso TDD Ruby on Rails #02: Test Driven Development

Destacado (7)

PDF
Curso de Ruby on Rails para el Master de Deusto. Día 2
PDF
Taller ruby
PDF
Curso de Ruby on Rails
PDF
Ruby Facil
PDF
Code Blast 2012 - Ruby on Rails v.2012
PDF
Ruby on Rails - ETyC 2011
PDF
Curso TDD Ruby on Rails #01: Introducción al testing
Curso de Ruby on Rails para el Master de Deusto. Día 2
Taller ruby
Curso de Ruby on Rails
Ruby Facil
Code Blast 2012 - Ruby on Rails v.2012
Ruby on Rails - ETyC 2011
Curso TDD Ruby on Rails #01: Introducción al testing
Publicidad

Similar a Curso de Ruby on Rails para el Master de Deusto (20)

ODP
Desarrollo de Apps Web en Ruby on Rails
PPTX
Ruby on Rails
PPTX
Ruby on rails
PPT
Presentacion portlets-tools
PPT
Presentacion portlets tools
PPT
Presentacion portlets tools
PDF
UDA-Componentes RUP. Migas
PDF
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
KEY
Taller de Introducción a Ruby on Rails (2ª parte)
PDF
Presentación Ruby on Rails
PDF
DXAT LENA presentación final
PDF
Groopify para groopies
ODP
Joserojas Web 2.0
PDF
Web 2.0, Presentación
ODP
Presentacion Ruby on Rails en Universidad Autónoma 2009
PDF
Genasys sigte2011 open_geogadget_framework (OGF)
PDF
Introducción al desarrollo web moderno
PPTX
Herramientas case MobinCube
PDF
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo de Apps Web en Ruby on Rails
Ruby on Rails
Ruby on rails
Presentacion portlets-tools
Presentacion portlets tools
Presentacion portlets tools
UDA-Componentes RUP. Migas
Jose Rojas Desarrollo Rapido de Aplicaciones con RoR
Taller de Introducción a Ruby on Rails (2ª parte)
Presentación Ruby on Rails
DXAT LENA presentación final
Groopify para groopies
Joserojas Web 2.0
Web 2.0, Presentación
Presentacion Ruby on Rails en Universidad Autónoma 2009
Genasys sigte2011 open_geogadget_framework (OGF)
Introducción al desarrollo web moderno
Herramientas case MobinCube
Desarrollo rápido de apps web con laravel - DevAcademy
Publicidad

Último (20)

PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
taller de informática - LEY DE OHM
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
CyberOps Associate - Cisco Networking Academy
PDF
clase auditoria informatica 2025.........
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PPT
Que son las redes de computadores y sus partes
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Presentación PASANTIAS AuditorioOO..pptx
taller de informática - LEY DE OHM
REDES INFORMATICAS REDES INFORMATICAS.pptx
historia_web de la creacion de un navegador_presentacion.pptx
Estrategia de apoyo tecnología grado 9-3
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Propuesta BKP servidores con Acronis1.pptx
CyberOps Associate - Cisco Networking Academy
clase auditoria informatica 2025.........
Plantilla para Diseño de Narrativas Transmedia.pdf
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Sesion 1 de microsoft power point - Clase 1
Influencia-del-uso-de-redes-sociales.pdf
introduccion a las_web en el 2025_mejoras.ppt
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Power Point Nicolás Carrasco (disertación Roblox).pptx
Que son las redes de computadores y sus partes
SAP Transportation Management para LSP, TM140 Col18
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx

Curso de Ruby on Rails para el Master de Deusto

  • 1. Ruby on Rails Master Universitario en Desarrollo e Integración de Soluciones de Software Universidad de Deusto Día 1 miércoles 2 de febrero de 2011
  • 2. ¿Qué es Rails? • Plataforma Open Source para la creación de sitios web. • Puntos fuertes: • Baja barrera de entrada • Favorece el desarrollo ágil • Se programa en Ruby • Comunidad muy activa, despierta y dispuesta a ayudar • ... miércoles 2 de febrero de 2011
  • 3. ¿Quién usa Rails? shopify.com twitter.com basecamphq.com github.com justin.tv yellowpages.com pragprog.com miércoles 2 de febrero de 2011
  • 4. ¿Qué vamos a construir? miércoles 2 de febrero de 2011
  • 5. ¿Qué vamos a construir, hoy? • Que nuestros futuros usuarios puedan registrarse y entrar en la aplicación usando su login y contraseña • http://slidesha.re/h4xuXd miércoles 2 de febrero de 2011
  • 6. Lugares de referencia • http://railstutorial.org • Documentación del API de Rails: http://api.rubyonrails.org ó http://railsapi.com • Rails Guides: http://guides.rubyonrails.org/ • “Chuletas”: http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf miércoles 2 de febrero de 2011
  • 7. Instalación • Windows: Rails installer • ssh ror<n>@ror.deusto.efaber.net miércoles 2 de febrero de 2011
  • 8. MVC Source: http://www.railstutorial.org miércoles 2 de febrero de 2011
  • 9. Esqueleto de nueva aplicación [esti@local] $ rails new deusto_app create README create db create Rakefile create lib create Gemfile create log create app create public create app/controllers/ create public/images create app/helpers/ create public/stylesheets create public/javascripts create app/mailers/ create script create app/models/ create test create app/views/ create vendor/plugins create config create config/routes.rb create config/application.rb create config/environment.rb create config/initializers create config/locales create config/boot.rb create config/database.yml miércoles 2 de febrero de 2011
  • 10. ¿Y ahora qué? Rails viene con muchas tareas predefinidas para ponernos en marcha rápidamente •$ cd deusto_app •$ rails --help •$ rails generate --help •$ rake -T miércoles 2 de febrero de 2011
  • 11. miércoles 2 de febrero de 2011
  • 12. $ rails server http://localhost:3000 Up a nd ru nn ing ! miércoles 2 de febrero de 2011
  • 13. Creación de usuarios $ rails generate scaffold User name:string email:string password:string create db/migrate/20110128102008_create_users.rb create app/models/user.rb create test/unit/user_test.rb create test/fixtures/users.yml route resources :users create app/controllers/users_controller.rb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb create test/functional/users_controller_test.rb create app/helpers/users_helper.rb create test/unit/helpers/users_helper_test.rb create public/stylesheets/scaffold.css miércoles 2 de febrero de 2011
  • 14. Creación de usuarios $ rails generate scaffold User name:string email:string password:string create db/migrate/20110128102008_create_users.rb !!! create app/models/user.rb create test/unit/user_test.rb create test/fixtures/users.yml route resources :users create app/controllers/users_controller.rb create app/views/users create app/views/users/index.html.erb create app/views/users/edit.html.erb create app/views/users/show.html.erb create app/views/users/new.html.erb create app/views/users/_form.html.erb create test/functional/users_controller_test.rb create app/helpers/users_helper.rb create test/unit/helpers/users_helper_test.rb create public/stylesheets/scaffold.css miércoles 2 de febrero de 2011
  • 15. La base de datos /db/migrate/<fechahora>_create_users.rb miércoles 2 de febrero de 2011
  • 16. $ rake db:migrate miércoles 2 de febrero de 2011
  • 17. http://localhost:3000/users Voi l a! miércoles 2 de febrero de 2011
  • 18. Modelo /app/models/user.rb miércoles 2 de febrero de 2011
  • 19. Controlador app/controllers/users_controller.rb miércoles 2 de febrero de 2011
  • 20. Vistas /app/views/users/index.html.erb miércoles 2 de febrero de 2011
  • 21. Rutas miércoles 2 de febrero de 2011
  • 22. Demo de scaffold de usuarios miércoles 2 de febrero de 2011
  • 23. Mu cho me jor ! miércoles 2 de febrero de 2011
  • 24. Introducir algunos records con emails inválidos, duplicados, en blanco... !!!!!! !! miércoles 2 de febrero de 2011
  • 25. Validaciones ActiveRecord nos da “gratis” métodos para validar los campos que introducimos miércoles 2 de febrero de 2011
  • 26. Y podemos visualizar los errores de validación en el formulario miércoles 2 de febrero de 2011
  • 27. Tests • Unit tests: Testean la funcionalidad del modelo • Functional tests: Testean la funcionalidad del controlador y las vistas • Integration tests: Testean el flujo de una visita típica a la web miércoles 2 de febrero de 2011
  • 28. Unit Test del modelo User /tests/unit/user_test.rb rake db:test:prepare miércoles 2 de febrero de 2011
  • 29. Unit Test del modelo User 1/2 miércoles 2 de febrero de 2011
  • 30. Unit Test del modelo User 2/2 miércoles 2 de febrero de 2011
  • 31. Ejecutamos el test $ cd test $ ruby unit/test_user.rb miércoles 2 de febrero de 2011
  • 32. ¡Os toca! miércoles 2 de febrero de 2011
  • 33. Empezamos de dónde lo habíamos dejado: $ git clone git://github.com/esti/deusto_app.git $ git checkout -b 1_user_model 1_user_model Ó https://github.com/esti/deusto_app/tree/user_model miércoles 2 de febrero de 2011
  • 34. Controlador render /app/views/users/index.html.erb render /app/views/users/show.html.erb render /app/views/users/new.html.erb miércoles 2 de febrero de 2011
  • 35. ActiveRecord • User.all • User.all.where(:role => ‘admin’).order (:created_at => ‘desc’) • User.find(18) • User.destroy([1,2,3,4]) http://blog.envylabs.com/Rails_3_Cheat_Sheets.pdf miércoles 2 de febrero de 2011
  • 36. ActiveRecord Lazy loading: users = User.all.where(:role => “admin”) if params[:order] users = users.order(params[:order]) end users.each {|user| user.name} -> Hasta aquí no se toca la base de datos miércoles 2 de febrero de 2011
  • 37. Rails console $ rails console La consola rails como el interprete “irb” de Ruby pero con acceso a toda la aplicación rails, con todas las clases, métodos, etc. Es muy útil para hacer pruebas y debugging miércoles 2 de febrero de 2011
  • 38. Create y update miércoles 2 de febrero de 2011
  • 39. Rutas REST ¿Cómo es posible que aparentemente la misma ruta sirva para diferentes acciones? miércoles 2 de febrero de 2011
  • 40. Las rut as n os l o ex plic an! miércoles 2 de febrero de 2011
  • 41. Rutas /config/routes.rb $ rake routes users GET /users(.:format) {:action=>"index", :controller=>"users"} POST /users(.:format) {:action=>"create", :controller=>"users"} new_user GET /users/new(.:format) {:action=>"new", :controller=>"users"} edit_user GET /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"} user GET /users/:id(.:format) {:action=>"show", :controller=>"users"} PUT /users/:id(.:format) {:action=>"update", :controller=>"users"} DELETE /users/:id(.:format) {:action=>"destroy", :controller=>"users"} miércoles 2 de febrero de 2011
  • 42. Registro real No necesitamos una persona que registre a todos los usuarios, sino que cada uno se pueda dar de alta sólo miércoles 2 de febrero de 2011
  • 43. Modificamos el tipo del campo de la contraseña y añadimos confirmación miércoles 2 de febrero de 2011
  • 44. El campo de confirmación no existe porque no es una columna de la tabla en la base de datos. Tenemos que definirlo en el modelo explícitamente. miércoles 2 de febrero de 2011
  • 45. Definimos el atributo password_confirmation y lo añadimos en las validaciones miércoles 2 de febrero de 2011
  • 46. miércoles 2 de febrero de 2011
  • 47. Demo miércoles 2 de febrero de 2011
  • 48. Ahora que el usuario se puede registrar, necesitamos que pueda hacer login para que luego podamos identificar quién hace cada tweet. $ rails generate controller sessions new miércoles 2 de febrero de 2011
  • 49. El usuario va a poder identificarse usando su email y la contraseña que dio al registrarse miércoles 2 de febrero de 2011
  • 50. Tenemos que definir el método User.authenticate miércoles 2 de febrero de 2011
  • 51. Preparamos el formulario para que el usuario pueda hacer login con el email y la contraseña /app/views/sessions/new.html.erb El HTML que genera miércoles 2 de febrero de 2011
  • 52. Y definimos unas URL cortas más bonitas •/signup: para registrarse •/login: para entrar •/logout: para salir miércoles 2 de febrero de 2011
  • 53. Necesitamos links a login/logout en todas las páginas de la web. Para esto están los “layouts”. Son las plantillas donde suelen ir la cabecera y el pie de página comunes a todas las páginas miércoles 2 de febrero de 2011
  • 54. Plantilla principal /app/views/layouts/application.html.erb miércoles 2 de febrero de 2011
  • 55. Necesitamos una función que nos diga si el usuario está loggeado o no /app/controllers/application_controller.rb miércoles 2 de febrero de 2011
  • 56. Y ponerlo todo un poco más bonito /public/stylesheets/application.css miércoles 2 de febrero de 2011
  • 57. Demo miércoles 2 de febrero de 2011