90
Ruby on Rails Master Universitario en Desarrollo e Integración de Soluciones de Software Universidad de Deusto Día 4 jueves 3 de febrero de 2011

Curso de Rails para el Master de Deusto, día 4

  • Upload
    elibkr

  • View
    694

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Curso de Rails para el Master de Deusto, día 4

Ruby on RailsMaster Universitario en Desarrollo e Integración de

Soluciones de Software

Universidad de Deusto

Día 4

jueves 3 de febrero de 2011

Page 2: Curso de Rails para el Master de Deusto, día 4

¿Dónde estabamos?

jueves 3 de febrero de 2011

Page 3: Curso de Rails para el Master de Deusto, día 4

Página de inicio

jueves 3 de febrero de 2011

Page 4: Curso de Rails para el Master de Deusto, día 4

Login

jueves 3 de febrero de 2011

Page 5: Curso de Rails para el Master de Deusto, día 4

Página de un usuario

jueves 3 de febrero de 2011

Page 6: Curso de Rails para el Master de Deusto, día 4

¿Qué es lo siguiente?

• Los usuarios pueden elegir qué tweets quieren ver: seguidores y seguidos

jueves 3 de febrero de 2011

Page 7: Curso de Rails para el Master de Deusto, día 4

¿Qué vamos a usar?

• Relaciones many_to_many

• Migraciones

• Ajax

• rails console

• ...

jueves 3 de febrero de 2011

Page 8: Curso de Rails para el Master de Deusto, día 4

¿Qué queremos conseguir?

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el enlace “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 9: Curso de Rails para el Master de Deusto, día 4

Empezamos por el modelo

User has_many :followers

User has_many :following

jueves 3 de febrero de 2011

Page 10: Curso de Rails para el Master de Deusto, día 4

La relación entre los usuarios

User has_many :relationships

User has_many :following :through => :relationships ...User has_many :followers :through => :relationships ...

jueves 3 de febrero de 2011

Page 11: Curso de Rails para el Master de Deusto, día 4

Manos a la obra

jueves 3 de febrero de 2011

Page 12: Curso de Rails para el Master de Deusto, día 4

La migración

jueves 3 de febrero de 2011

Page 13: Curso de Rails para el Master de Deusto, día 4

La tabla relationships

jueves 3 de febrero de 2011

Page 14: Curso de Rails para el Master de Deusto, día 4

El modelo Relationship

jueves 3 de febrero de 2011

Page 15: Curso de Rails para el Master de Deusto, día 4

Fixture por defectotest/fixtures/relationships.yml

jueves 3 de febrero de 2011

Page 16: Curso de Rails para el Master de Deusto, día 4

Fixture para nuestros datostest/fixtures/relationships.yml

jueves 3 de febrero de 2011

Page 17: Curso de Rails para el Master de Deusto, día 4

Unit test para Relationshiptest/unit/relationship_test.rb

jueves 3 de febrero de 2011

Page 18: Curso de Rails para el Master de Deusto, día 4

Unit test para Relationshiptest/unit/relationship_test.rb

jueves 3 de febrero de 2011

Page 19: Curso de Rails para el Master de Deusto, día 4

Unit test para Relationshiptest/unit/relationship_test.rb

jueves 3 de febrero de 2011

Page 20: Curso de Rails para el Master de Deusto, día 4

La relación entre los usuarios

User has_many :relationships

User has_many :following :through => :relationships ...User has_many :followers :through => :relationships ...

jueves 3 de febrero de 2011

Page 21: Curso de Rails para el Master de Deusto, día 4

Relación User - Relationshipapp/models/user.rb

jueves 3 de febrero de 2011

Page 22: Curso de Rails para el Master de Deusto, día 4

Test de la relación User - Relationshiptest/unit/user_test.rb

jueves 3 de febrero de 2011

Page 23: Curso de Rails para el Master de Deusto, día 4

La relación entre los usuarios

User has_many :relationships

User has_many :following :through => :relationships ...User has_many :followers :through => :relationships ...

jueves 3 de febrero de 2011

Page 24: Curso de Rails para el Master de Deusto, día 4

Relación User - Followingapp/models/user.rb

jueves 3 de febrero de 2011

Page 25: Curso de Rails para el Master de Deusto, día 4

Test de la relación User - Followingtest/unit/user_test.rb

jueves 3 de febrero de 2011

Page 26: Curso de Rails para el Master de Deusto, día 4

Relación User - Following II

Además de la lista de personas que el usuario sigue (following) necesitamos algunos métodos que nos ayudarán

a manejar las relaciones:

• comprobar si una relación ya existe: follows?• crear un relación: follow• eliminar una relación: unfollow

jueves 3 de febrero de 2011

Page 27: Curso de Rails para el Master de Deusto, día 4

Relación User - Following IIapp/models/user.rb

jueves 3 de febrero de 2011

Page 28: Curso de Rails para el Master de Deusto, día 4

Tests de la relación User - Following IItest/units/user.rb

jueves 3 de febrero de 2011

Page 29: Curso de Rails para el Master de Deusto, día 4

La relación entre los usuarios

User has_many :relationships

User has_many :following :through => :relationships ...User has_many :followers :through => :relationships ...

jueves 3 de febrero de 2011

Page 30: Curso de Rails para el Master de Deusto, día 4

Relación User - Followersapp/models/user.rb

jueves 3 de febrero de 2011

Page 31: Curso de Rails para el Master de Deusto, día 4

Tests de la relación User - Followers IItest/unit/user.rb

jueves 3 de febrero de 2011

Page 32: Curso de Rails para el Master de Deusto, día 4

La relación entre los usuarios

User has_many :relationships

User has_many :following :through => :relationships ...User has_many :followers :through => :relationships ...

jueves 3 de febrero de 2011

Page 33: Curso de Rails para el Master de Deusto, día 4

¡Os toca!

jueves 3 de febrero de 2011

Page 34: Curso de Rails para el Master de Deusto, día 4

¿Qué queremos conseguir?

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el botón “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 35: Curso de Rails para el Master de Deusto, día 4

jueves 3 de febrero de 2011

Page 36: Curso de Rails para el Master de Deusto, día 4

Interfaz web

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el botón “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 37: Curso de Rails para el Master de Deusto, día 4

jueves 3 de febrero de 2011

Page 38: Curso de Rails para el Master de Deusto, día 4

jueves 3 de febrero de 2011

Page 39: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: requisitos

• Los usuarios conectados pueden ver la lista de todos los usuarios

• Los usuarios que no han entrado (visitantes) no pueden ver ningún usuario.

jueves 3 de febrero de 2011

Page 40: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: el controller

Hay que añadir el método index y restringir el acceso a este método para que sea

accesible sólo para los usuarios conectados.

jueves 3 de febrero de 2011

Page 41: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: el controller y el view

jueves 3 de febrero de 2011

Page 42: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios

¿Porqué sale error?

jueves 3 de febrero de 2011

Page 43: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: las rutas

jueves 3 de febrero de 2011

Page 44: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios

jueves 3 de febrero de 2011

Page 45: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: enalce

Añadir el enlace a la lista de usuarios.

jueves 3 de febrero de 2011

Page 46: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: enalceapp/views/layouts/application.html.erb

jueves 3 de febrero de 2011

Page 47: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: enlace

jueves 3 de febrero de 2011

Page 48: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: requisitos

• Los usuarios conectados pueden ver la lista de todos los usuarios

• Los visitantes no pueden ver ningún usuario.

jueves 3 de febrero de 2011

Page 49: Curso de Rails para el Master de Deusto, día 4

Es hora de hacer algunos tests

• Los usuarios conectados ven la lista de usuarios.

• Los visitantes no ven el enlace si la lista de usuarios.

• Los usuarios conectados ven el enlace a la lista de usuarios.

jueves 3 de febrero de 2011

Page 50: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: los tests

jueves 3 de febrero de 2011

Page 51: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: los tests

No hemos hecho nada para que los visitantes no puedan ver la lista de usuarios.

jueves 3 de febrero de 2011

Page 52: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: los visitantes no la ven

app/controllers/users_controller.rb

jueves 3 de febrero de 2011

Page 53: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: los tests

Hay que cambiar el mensaje que mostramos al visitante.

jueves 3 de febrero de 2011

Page 54: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: mensaje para los visitantes

app/controllers/application_controller.rb

jueves 3 de febrero de 2011

Page 55: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: mensaje para los visitantes

app/controllers/application_controller.rb

jueves 3 de febrero de 2011

Page 56: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: los tests

jueves 3 de febrero de 2011

Page 57: Curso de Rails para el Master de Deusto, día 4

Es hora de hacer algunos tests

• Los usuarios conectados ven la lista de usuarios.

• Los visitantes no ven el enlace si la lista de usuarios.

• Los usuarios conectados ven el enlace a la lista de usuarios. (deberes)

jueves 3 de febrero de 2011

Page 58: Curso de Rails para el Master de Deusto, día 4

Lista de usuarios: requisitos

• Los usuarios conectados pueden ver la lista de todos los usuarios

• Los visitantes no pueden ver ningún usuario.

jueves 3 de febrero de 2011

Page 59: Curso de Rails para el Master de Deusto, día 4

Interfaz web

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el enlace “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 60: Curso de Rails para el Master de Deusto, día 4

Página de un usuario:el controller, el view y la ruta

jueves 3 de febrero de 2011

Page 61: Curso de Rails para el Master de Deusto, día 4

Página de un usuario

jueves 3 de febrero de 2011

Page 62: Curso de Rails para el Master de Deusto, día 4

Ir a la página de un usuario

jueves 3 de febrero de 2011

Page 63: Curso de Rails para el Master de Deusto, día 4

Ir a la página de un usuario:app/views/users/index.html.erb

jueves 3 de febrero de 2011

Page 64: Curso de Rails para el Master de Deusto, día 4

Interfaz web

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el botón “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 65: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguirSeguir:

crear una relación seguidor-seguido

Dejar de seguir: eliminar la relación seguidor-seguido

relationships_controller create

relationships_controller destroy

jueves 3 de febrero de 2011

Page 66: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:el controller y las rutas

jueves 3 de febrero de 2011

Page 67: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:app/controllers/relationships_controller.rb

jueves 3 de febrero de 2011

Page 68: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb

jueves 3 de febrero de 2011

Page 69: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb

jueves 3 de febrero de 2011

Page 70: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:el formulario

jueves 3 de febrero de 2011

Page 71: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:el formulario

jueves 3 de febrero de 2011

Page 72: Curso de Rails para el Master de Deusto, día 4

jueves 3 de febrero de 2011

Page 73: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb

jueves 3 de febrero de 2011

Page 74: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb

jueves 3 de febrero de 2011

Page 75: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:app/controllers/relationships_controller.rb

jueves 3 de febrero de 2011

Page 76: Curso de Rails para el Master de Deusto, día 4

Seguir y dejar de seguir:Ajax

jueves 3 de febrero de 2011

Page 77: Curso de Rails para el Master de Deusto, día 4

jueves 3 de febrero de 2011

Page 78: Curso de Rails para el Master de Deusto, día 4

Interfaz web

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el botón “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 79: Curso de Rails para el Master de Deusto, día 4

Página de inicio

jueves 3 de febrero de 2011

Page 80: Curso de Rails para el Master de Deusto, día 4

Página de inicio

jueves 3 de febrero de 2011

Page 81: Curso de Rails para el Master de Deusto, día 4

Nueva página de inicio

• Los usuarios conectados ven los mensajes de los usuarios que siguen

• Los visitantes ven todos los mensajes

jueves 3 de febrero de 2011

Page 82: Curso de Rails para el Master de Deusto, día 4

Nueva página de inicio

jueves 3 de febrero de 2011

Page 83: Curso de Rails para el Master de Deusto, día 4

Mensajes que ve un usuario

jueves 3 de febrero de 2011

Page 84: Curso de Rails para el Master de Deusto, día 4

Mensajes para un usuario

el id del usuario el id del seguido

jueves 3 de febrero de 2011

Page 85: Curso de Rails para el Master de Deusto, día 4

Mensajes para un usuario

jueves 3 de febrero de 2011

Page 86: Curso de Rails para el Master de Deusto, día 4

Nueva página de inicio

jueves 3 de febrero de 2011

Page 87: Curso de Rails para el Master de Deusto, día 4

Interfaz web

• El usuario se conecta.

• Va a la lista de usuarios.

• Va a la página del usuario que quiere seguir.

• Pincha en el botón “Seguir” y así añade a este usuario a la lista de usuarios que sigue.

• Ahora, en la página del primer usuario salen los tweets del que acaba de empezar a seguir

jueves 3 de febrero de 2011

Page 88: Curso de Rails para el Master de Deusto, día 4

Retoques

• Enlace a la página del usuario conectado: Profile

• Enlace a la página de inicio: Home

jueves 3 de febrero de 2011

Page 89: Curso de Rails para el Master de Deusto, día 4

Nueva página de inicio

jueves 3 de febrero de 2011

Page 90: Curso de Rails para el Master de Deusto, día 4

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

jueves 3 de febrero de 2011