Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCristián Rey Barbero Modificado hace 8 años
1
Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2016-1
2
¿Qué es Ruby? “Un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla” https://www.ruby-lang.org/es/ Creado por Yukihiro “Matz” Matsumoto
3
¿Cuáles son sus características principales? Todo es un objeto Manejo de excepciones Garbage collector Manejo de hilos NO existen puntos y comas
4
¿Cuál es el historial de versiones de Ruby? 1.0 1995 …. 1.8 2007 1.9 2007 2.1 2013 2.2 2015 2.3 2016
5
¿Qué es Ruby on Rails? “Ruby on Rails es un entorno de desarrollo web de código abierto que está optimizado para la satisfacción de los programadores y para la productividad sostenible. Te permite escribir un buen código evitando que te repitas y favoreciendo la convención antes que la configuración” Rails fue creado en 2003 por David Heinemeier Hansson y desde entonces ha sido extendido por el Rails core team a más de 2.100 colaboradores. http://www.rubyonrails.org.es/
6
¿Qué es Rails? Es un framework para el desarrollo web escrito en Ruby. Sus principios de desarrollo son: "Don't Repeat Yourself" DRY Un programador sólo necesita especificar los aspectos no convencionales de la aplicación Convención sobre Configuración COC
7
¿Qué necesita Ruby on rails para funcionar? Lenguaje Ruby on rails versión 2.2 o superior. Estable 2.2.x. Última 2.3 Gemas: Paquetes de instalación Una instalación de un motor de base de datos. Por defecto usa SQLite 3
8
¿Cuál es el historial de versiones de Ruby on Rails? 1.0 Dic 2005 …. 4.0 Jun 2013 4.1 Sep 2014 4.2 Dic 2014
9
Instalación en Linux Para Ubuntu
10
RVM Ruby versión manager
11
1) instalación linux (probado en ubuntu 15.4) Actualizar el gestor de paquetes sudo apt-get update Instalar el curl sudo apt-get install curl Conseguir llave de seguridad para usar el rmv Ejecutar la petición al rmv \curl -sSL https://get.rvm.io | bash -s stable –rails Probar ejecutando comando como rails –v ruby –v Instalar nodejs para ejecución de entorno de javascript sudo apt-get install nodejs Instalación Linux
12
Iniciar en el terminar el rvm La ruta que se pone en el source cambia según dónde se halla hecho la instalación del rvm
13
2. Crear una nueva aplicación rails new nombreApp 3. En la carpeta de la aplicación en el archivo gemfile descomentar la línea gem 'therubyracer'. Guardar 4. Ejecutar el comando bundle install Instalación Linux
14
Instalación en windows
15
Resultado de la instalaciónrail
16
Instalación Windows ( con Rails installer)
17
¿Cuál es el ambiente del rails installer?
19
Instalación ( con Rails installer)
20
Configuración instalador
21
Buscar los archivos bundle.bat y rails.bat en C:\RailsInstaller\Ruby2.2.0\bin Reemplazar la segunda línea por: Solucionar bug del rails installer @"%~dp0ruby.exe" "%~dpn0" %*
22
Instalar NodeJs Ingresar a la pagina de nodejs, descargarlo e instalarlo para que función bien la parte de javascript de la aplicación
23
¿Cómo crear un nuevo proyecto? Crea un proyecto con el nombre que se indica. Crea una estructura de directorios para proyectos. $ rails new blog blog: nombre del proyecto En la carpeta en la que deseemos En Linux autenticarse como root primero
24
Importante bundle install que instala las gemas que se requieran.
25
Descomentar la gema “the ruby racer”
26
Se ha creado un proyecto funcional, luego sólo es necesario subir el servidor Comando inicio servidor En la consola escribir rails server. Para que funcione se debe estar dentro de la carpeta app de proyecto creado. Para parar el servidor escribir ctr + c Puerto 3000
27
Página por defecto ruby on rails
28
Carpeta de los proyectos CarpetaFunción /app Aquí se organizan los componentes de la aplicación. Tiene subdirectorios que contienen la vista (view y helpers), los controladores (controllers) y la lógica de negocio (models). /app/controller Aquí se deben ubicar las clases controller. Un controller maneja un requerimiento web del usuario. /app/helpers Contiene todas las clases helper que asisten a las clases model, view y controller. Esto ayuda a mantener el código del modelo, la vista y los controladores lo más reducido, enfocado y despejado posible. /app/models Contiene las clases que modelan y empaquetan los datos almacenados en la base de datos de la aplicación /app/view Contiene las plantillas para completar con los datos de la aplicación, convertir a HTML y devolver al browser del usuario.
29
Carpeta de los proyectos CarpetaFunción /conf Aquí se ubica el código de configuración que requiere una aplicación. Incluye configuración a bases de datos, y estructura del ambiente. Permite configurar ambiente de pruebas, desarrollo y producción /db En este directorio se mantienen los scripts para el manejo de la base de datos relacional /lib Aquí se almacenan bibliotecas específicas de la aplicación /log Aquí van los logs de errores. /public Tiene todos los archivos que no cambian, tales como javaScript (public/javascripts), gráficos (public/images), hojas de estilo (public/stylesheets) y archivos HTML (public)
30
¿Qué son las gemas? Son plugins y/o códigos añadidos a nuestros proyectos Ruby on Rails, que permiten añadir nuevas funcionalidades.
31
Las gemas que requiere la aplicación se pueden configurar en el archivo GemFile. Se requiere tener instalado Bundler para el manejo de las gemas. Para hacer uso de las gemas allí configuradas se usa el comando install bundle Si no se indica la versión se instala la última. ¿Qué son los archivos GemFile?
32
¿Cómo aplica Ruby on rails MVC?
33
“ Routing is the mechanism by which requests (as specified by a URL and HTTP method) are routed to the code that handles them” ¿Qué es el enrutamiento en una aplicación web?
34
Haciendo ajustes Abrir sublime desde consola subl &
35
Crear un controlador y una vista Para crear un controlador y una vista escribir el siguiente comando rails generate controller welcome index Indica que se creará un controllador llamado welcome y una vista llamada index
36
Modificar información de la vista Modificar app/views/welcome/index.html.erb para escribir el siguiente texto
37
Adicionar lógica a la vista Código ruby Código Ruby con = significa que se va a imprimir algo. Variables @: son variables de instancia disponibles en todos los métodos de una clase Se crea la variable de instancia en el controlador y en la vista así
38
¿Cómo se ve?
39
Crear código en la vista
40
Ciclo dentro de la vista
41
CSS Deben ir en la carpeta assets, dentro de nombreproyecto.css.scss los estilos
42
Layouts La idea básica es no repetir código Yield: Ejecuta la página que se estructura y se mete dentro de un layout. Así se evita la repetición de código. Se deben ubicar dentro de la carpeta layout
43
Layouts ( 2) Indicar en el controlador el layout
44
Modificar home page Se debe indicar que la página por defecto de la aplicación será la página creada anteriormente Abrir el archivo config/routes.rb. Descomentar la línea que inicia con Root Indica que se mapee cualquier solicitud del root al controlador en el método index
45
MODELO en Ruby on rails
46
¿Cómo aplica Ruby on rails MVC? Modelo Representan tablas de la base de datos Las clases del Modelo son gestionadas por ActiveRecord Extender de ActiveRecord::Base El programa averiguará automáticamente qué tabla usar y qué columnas tiene. ACTIVE RECORD interfaz para la manipulación de objetos dentro de bases de datos para Rails que funciona, también, en torno a Ruby
47
Modelo- Active Record - ORM
48
Generar un modelo rails generate model ( campos y tipos de campos) rails generate model User nombre:string email: string ¿Cómo se genera un modelo con el generador? Eliminar generate: rails destroy model User
49
¿Qué es el Active Record? Permite hacer mapeo objeto- relacional (ORM) en Ruby. Mapea una fila de una tabla de la base de datos a un objeto en ruby. Se usa para consultar datos en la base de datos en lugar de usar directamente sql. Por estándar los nombres quedan en minúsculsa
50
¿Cómo se ve la clase del modelo y la clase de la migración? http://www.youtube.com/watch?v=3ixyMaCRFUY&index=3&list= PLQCgNGUqLK4l4vHyqkOenCxSPHNp6RGUq
51
Una migración es un concepto de ActiveRecord que permite mantener las modificaciones al esquema de su base de datos sincronizadas con la versión actual del código fuente. Cuando está ok, se ejecuta el comando rake db:migrate Para deshacerlo se ejecuta rake db:reset //Limpia las tablas rake db:drop //Elimina la bd ¿Qué es una migración?
53
Convenciones de nombre Llaves foráneas: singularized_table_name_id item_id Llave primaria: id
54
Ejecutar: rake db:migrate Correr migraciones
55
MODELO. Operaciones sobre el modelo. Consultar http://guides.rubyonrails.org/active_record_basics.html
56
MODELO. Operaciones sobre el modelo. Crear
57
MODELO. Operaciones sobre el modelo. Actualizar
58
MODELO. Operaciones sobre el modelo. Borrar
59
Una asociación e una conexión entre dos modelos del Active Record. Se usan ciertas palabras claves para demostrar esas asociaciones. Rails construye la relación entre las llaves ( primaria y foránea) según el tipo de asociación Asociaciones en Rails
60
belongs_to Conexión uno a uno con otro modelo. Cada instancia del modelo pertenece a una instancia del otro modelo Debe usarse el nombre de la clase en singular dentro del belong_to ¿Qué tipos de asociaciones existen?
61
has_one Conexión uno a uno con otro modelo. Cada instancia de un modelo contiene o pose una instancia de otro modelo ¿Qué tipos de asociaciones existen?
62
has_many One o mas conexiones con otro modelo. Es común encontrarla al otro lado de una relación belongs_to. Cada instancia del modelo tienen una o más instancias del otro modelo. El nombre del otro modelo debe estar en plural ¿Qué tipos de asociaciones existen?
63
Controlador en ruby on rails
64
MVC en Ruby on rails Controlador Responden a la interacción del usuario e invocan a la lógica de la aplicación Las clases del controlador son gestionadas por el Application Controller y deben heredar de él Acciones son métodos Se invoca desde la web con este patrón: URL : http://aplicacion/ejemplo/me todo Controlador : EjemploController#método Vista con plantilla : /app/views/ejemplo/método. html.erb URL : http://aplicacion/ejemplo/me todo Controlador : EjemploController#método Vista con plantilla : /app/views/ejemplo/método. html.erb
65
¿Cómo se ve el controlador por dentro? Aquí se pondrán los métodos relacionados con realizar las operaciones de CRUD. Hay métodos públicos, privados y protegidos
66
Vista en ruby on rails
67
MVC en Ruby on rails Vista Cómo se muestran los datos de las clases del Controlador Tiene fragmentos html con código ruby empotrado similar a JSP Es necesario escribir un pequeño fragmento de código en HTML para cada método del controlador que necesita mostrar información al usuario
68
Extensiones de la vista.erb ( Ruby embebido) Actualiza la vista que es HTML.builder Actualiza la vista que es un template xml.coffee Actualiza la vista que es un template javascript
69
Las rutas amigables y la vista Fuente: http://guides.rubyonrails.org/routing.html Opciones para enlaces
70
Ejecutar el comando rake routes Resultado
71
Validaciones
72
Ejemplos validaciones Active Record Incorporar validaciones a los modelos desarrollados
73
Scaffolding
74
¿Qué es ? Scaffold significa andamio en inglés. Estos comandos permiten tener rapidamente un CRUD (Create, Retrieve, Update, Delete) de cualquier sistema transaccional. rails g scaffold Subject name:string teacherName:string rails destroy scaffold Subject Deshacer scaffold
75
¿Cómo se ve? Falta hacer la migración de la base de datos
76
¿Cómo se ve?
78
Tipos de datos Scaffold string text (long text, up to 64k, often used for text areas) datetime date integer binary boolean float decimal (for financial data) time timestamp
79
Ejercicio crear con Scaffold el siguiente modelo Appointment Donde cada cita debe tener los siguientes campos: UserName Pwd Email isStudent(boolean) Date of birthday AppointmentTime(timespan) AdditionalInformation (text) rails g scaffold Appointment….
80
Son etiquetas o nombres en ruby. Estan precedidos por pos puntos ( : ) ¿Qué son los símbolos en ruby? Una vez que se ha definido un símbolo con un nombre en la aplicación no puede existir otro símbolo con ese mismo nombre.
81
¿Cómo poner cascadas?
82
Eliminar un post que tenga comentarios ¿Cómo saber si funciona?
83
¿Qué son los filtros de los controladores? Permiten ejecutar código compartido antes o después de pre o post procesar código sobre esos métodos. Facilitan la reutilización.
84
Ejemplo- filtro post Vista show.html.erb. Usa la variable de instancia @post
85
Pasa valores de un request a otro. Los controladores los usan para enviar mensajes que son mostrados la usuario en la siguiente solicitud. ¿Para qué sirve el hash flash?
86
Ejemplo uso flash
87
Existen métodos en rails que ayudan a conocer la URL de un recurso. app.modelo_url app.post_url #=>http://localhost:3000/posts app.modelo_url (modeloEspecifico) app.post_url(@post) #=>http://localhost:3000/post/id Equivalente al id de @post Helpers para conocer URLs
88
Routes.rb
89
Las rutas representan la relación que existe entre funciones (mostrar, agregar, eliminar, etc.) de la app y un verbo HTTP (GET, POST, PUT, etc.). En rails las rutas se representan en el archivo routes.rb ¿Qué son las rutas?
90
El elemento "root" dentro del archivo routes.rb representa la ruta base para la aplicación o también puede representar la ruta base para un namespace. Ruta root
91
Para declarar una ruta individual se debe considerar lo siguiente: Conocer el verbo HTTP asociado a la ruta Identificar el controlador y el método que se relacionará con la ruta Rutas individuales
92
Son una colección predefinida de todas las posibles funciones que por defecto posee un controlador Resources
93
Son recursos que dependen uno del otro. Por lo general se utilizan cuando se emplea una tabla de uno a muchos. Ejm: un post tiene muchos comments Nested resources Ojo: Cuando se hacen cambios en el archivo de routes se debe reiniciar el servidor
94
¿Cómo anidar rutas? – archivo routes Ojo: Cuando se hacen cambios en este archivo se debe reiniciar el servidor
95
¿Cómo se ven las rutas anidadas?
96
Al aplicarlo a nuestra app. Problema : muestra todos los comments sin importar los post
97
Incluir en la vista show de post la información de los comentarios Incluir la lógica en el controlador en el método show para tener los comentarios
98
¿Cómo se ve?
99
Show de Post
100
Adicionar en la vista show de post el formulario para agregar un comentario
101
HELPERS
102
En general, su objetivo es mantener el código lo mas DRY posible encapsulando código repetitivo que se ejecuta en tus vistas y entregando operaciones comunes de una manera fácil al desarrollador ¿Qué son?
103
¿Qué helpers existen? Buscar en: http://api.rubyonrails.org/classes/ActionView/Helpers/For mTagHelper.html
104
app.modelo_path app.post_path #=>/posts app.edit_modelo_path app.edit_post_path #=>post/1 con petición GET Helpers para conocer URLs
105
¿Para qué sirve el hash Param? Sirve para acceder a los parámetros enviados en una solicitud GET ( por URL) o en una solicitud POST desde el controlador.
106
Permiten desde una página web solicitar otra. En rails se puede hacer desde el controlador usando el método redirect_to ¿Cómo se manejan re direcciones?
109
¿Qué pasa cuándo se guarda un comentario? Se requiere el post_id y se muestra el error de validación en la vista new de comments.
110
¿Cómo se debe ver?
111
Mejorar create del controlador comments para obtener el id del post
112
Bajar y volver al servidor Se elimina esta ruta pq ya se anidaron los comentarios en el post Eliminar la ruta directa de comments
113
Adicionar autenticación No todos los usuarios deberían agregar post o comments
114
Adicionar filtro de autenticación Incluir la autenticación en la sección de métodos privados del controlador. Usar método authenticate_or_request_with_http_basic Incluir la autenticación en la sección de métodos privados del controlador. Usar método authenticate_or_request_with_http_basic
115
¿Cuál es el resultado de la autenticación?
116
https://www.ruby-lang.org/en/documentation/success-stories/ http://rubyonrails.org Problemas rails: http://railsapps.github.io/openssl-certificate-verify-failed.htmlhttp://railsapps.github.io/openssl-certificate-verify-failed.html Instalar sqllite http://www.tutorialspoint.com/sqlite/sqlite_installation.htmhttp://www.tutorialspoint.com/sqlite/sqlite_installation.htm Instalar rails en ubuntu: http://railsapps.github.io/installrubyonrails-ubuntu.htmlhttp://railsapps.github.io/installrubyonrails-ubuntu.html Otros tutoriales rails: http://railsapps.github.iohttp://railsapps.github.io http://www.benkirane.ch/installing-ruby-on-rails-ubuntu/ Explicaciones sobre redirect – render: https://gist.github.com/jcasimir/1210155 Api REST en Rails: https://www.airpair.com/ruby-on-rails/posts/building-a-restful-api-in-a-rails-application Instalación de Heroku y rails https://www.codecademy.com/articles/deploy-rails-to-heroku Tutorial interactivo: http://www.codelearn.org/ruby-on-rails-tutorialhttp://www.codelearn.org/ruby-on-rails-tutorial Guia adicion bootstrap en ruby on rails http://www.gotealeaf.com/blog/integrating-rails-and-bootstrap-part-1 Referencias
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.