Upload
elibkr
View
694
Download
2
Embed Size (px)
Citation preview
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
¿Dónde estabamos?
jueves 3 de febrero de 2011
Página de inicio
jueves 3 de febrero de 2011
Login
jueves 3 de febrero de 2011
Página de un usuario
jueves 3 de febrero de 2011
¿Qué es lo siguiente?
• Los usuarios pueden elegir qué tweets quieren ver: seguidores y seguidos
jueves 3 de febrero de 2011
¿Qué vamos a usar?
• Relaciones many_to_many
• Migraciones
• Ajax
• rails console
• ...
jueves 3 de febrero de 2011
¿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
Empezamos por el modelo
User has_many :followers
User has_many :following
jueves 3 de febrero de 2011
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
Manos a la obra
jueves 3 de febrero de 2011
La migración
jueves 3 de febrero de 2011
La tabla relationships
jueves 3 de febrero de 2011
El modelo Relationship
jueves 3 de febrero de 2011
Fixture por defectotest/fixtures/relationships.yml
jueves 3 de febrero de 2011
Fixture para nuestros datostest/fixtures/relationships.yml
jueves 3 de febrero de 2011
Unit test para Relationshiptest/unit/relationship_test.rb
jueves 3 de febrero de 2011
Unit test para Relationshiptest/unit/relationship_test.rb
jueves 3 de febrero de 2011
Unit test para Relationshiptest/unit/relationship_test.rb
jueves 3 de febrero de 2011
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
Relación User - Relationshipapp/models/user.rb
jueves 3 de febrero de 2011
Test de la relación User - Relationshiptest/unit/user_test.rb
jueves 3 de febrero de 2011
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
Relación User - Followingapp/models/user.rb
jueves 3 de febrero de 2011
Test de la relación User - Followingtest/unit/user_test.rb
jueves 3 de febrero de 2011
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
Relación User - Following IIapp/models/user.rb
jueves 3 de febrero de 2011
Tests de la relación User - Following IItest/units/user.rb
jueves 3 de febrero de 2011
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
Relación User - Followersapp/models/user.rb
jueves 3 de febrero de 2011
Tests de la relación User - Followers IItest/unit/user.rb
jueves 3 de febrero de 2011
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
¡Os toca!
jueves 3 de febrero de 2011
¿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
jueves 3 de febrero de 2011
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
jueves 3 de febrero de 2011
jueves 3 de febrero de 2011
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
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
Lista de usuarios: el controller y el view
jueves 3 de febrero de 2011
Lista de usuarios
¿Porqué sale error?
jueves 3 de febrero de 2011
Lista de usuarios: las rutas
jueves 3 de febrero de 2011
Lista de usuarios
jueves 3 de febrero de 2011
Lista de usuarios: enalce
Añadir el enlace a la lista de usuarios.
jueves 3 de febrero de 2011
Lista de usuarios: enalceapp/views/layouts/application.html.erb
jueves 3 de febrero de 2011
Lista de usuarios: enlace
jueves 3 de febrero de 2011
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
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
Lista de usuarios: los tests
jueves 3 de febrero de 2011
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
Lista de usuarios: los visitantes no la ven
app/controllers/users_controller.rb
jueves 3 de febrero de 2011
Lista de usuarios: los tests
Hay que cambiar el mensaje que mostramos al visitante.
jueves 3 de febrero de 2011
Lista de usuarios: mensaje para los visitantes
app/controllers/application_controller.rb
jueves 3 de febrero de 2011
Lista de usuarios: mensaje para los visitantes
app/controllers/application_controller.rb
jueves 3 de febrero de 2011
Lista de usuarios: los tests
jueves 3 de febrero de 2011
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
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
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
Página de un usuario:el controller, el view y la ruta
jueves 3 de febrero de 2011
Página de un usuario
jueves 3 de febrero de 2011
Ir a la página de un usuario
jueves 3 de febrero de 2011
Ir a la página de un usuario:app/views/users/index.html.erb
jueves 3 de febrero de 2011
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
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
Seguir y dejar de seguir:el controller y las rutas
jueves 3 de febrero de 2011
Seguir y dejar de seguir:app/controllers/relationships_controller.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:el formulario
jueves 3 de febrero de 2011
Seguir y dejar de seguir:el formulario
jueves 3 de febrero de 2011
jueves 3 de febrero de 2011
Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:test/functionals/relationships_controller_test.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:app/controllers/relationships_controller.rb
jueves 3 de febrero de 2011
Seguir y dejar de seguir:Ajax
jueves 3 de febrero de 2011
jueves 3 de febrero de 2011
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
Página de inicio
jueves 3 de febrero de 2011
Página de inicio
jueves 3 de febrero de 2011
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
Nueva página de inicio
jueves 3 de febrero de 2011
Mensajes que ve un usuario
jueves 3 de febrero de 2011
Mensajes para un usuario
el id del usuario el id del seguido
jueves 3 de febrero de 2011
Mensajes para un usuario
jueves 3 de febrero de 2011
Nueva página de inicio
jueves 3 de febrero de 2011
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
Retoques
• Enlace a la página del usuario conectado: Profile
• Enlace a la página de inicio: Home
jueves 3 de febrero de 2011
Nueva página de inicio
jueves 3 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
jueves 3 de febrero de 2011