Your SlideShare is downloading. ×
0
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Desarrollo de Apps Web en Ruby on Rails

15,260

Published on

Conceptos básicos de Ruby on Rails incluyendo: …

Conceptos básicos de Ruby on Rails incluyendo:
- Controladores y acciones
- Rutas
- Configuraciones de applicacion
- Generación de modelos y Active Record
- Plantillas y vistas
- REST y recursos

Además de dos ejemplos prácticos:
- Página con mensaje 'Hola Mundo'
- MiniAplicación de blogs

Published in: Technology
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total Views
15,260
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
265
Comments
1
Likes
6
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ruby on Rails 3¿Qué es Ruby on Rails?¿Por qué elegir Rails?MVC (Modelo-Vista-Controlador)Hola Mundo en RailsEntornos de ejecución en RailsResources (Recursos) y RESTAlmacenamiento de RegistrosIncluyendo comentariosReferencias Expositor Bayron José Guevara Digital Sense S.A. de C.V. Fundador y Presidente www.digitalsensehn.com
  • 2. ¿Qué es Ruby on Rails?Rails es un framework o entorno de programación escrito en Ruby para el desarrollo de aplicaciones Web.Ruby es un lenguaje de programación orientado a objetos creado por Yukihiro Matsumoto como un lenguaje amigable al programador, es decir, su sintaxis esta enfocada en incrementar la productividad y no en la eficiencia de la máquina. #mostrar contenido de un archivo File.open(“ejemplo.txt”).each do |linea| puts linea end
  • 3. ¿Por qué elegir Rails sobre otros frameworks?1. Proporciona un Stack completo de tecnologías Web (Todo en uno)2. Solidez y madurez. Twitter, Groupon, Github3. Pensado en la productividad (Enfatiza convención sobre configuración)4. Comunidad grande y licencia libre (MIT)
  • 4. MVC (Modelo-Vista-Controlador) Rails es fundamentalmente una implementación de un patrón de diseño de software conocido como MVC. Este divide un sistema en tres componentes: El modelo de datos La vista o interfaz gráfica El controlador que contiene la lógica del negocio.
  • 5. Hola Mundo en RailsPasos:1. Instalar Ruby 1.8.7 o superior. Pueden descargarlo desde el sitio oficial o mediante Ruby Version Manager (RVM)2. Instalar Rails 3.2 o superior $ gem install rails3. Crear nuevo proyecto en Rails $ rails new mi_app4. Comienza la acción. Abre tu editor de texto favorito. Si prefieres un IDE recomiendo el plugin Ruby on Rails para Netbeans y plugin Aptana para Eclipse (ambos libres) o Ruby Mine (comercial)
  • 6. Hola Mundo en Rails5. Configurar del entorno. Instalamos el gem rails-i18n para habilitar la traducción al español de Rails, siguiendo estos pasos:a. Editamos el archivo Gemfile donde agregamos las dependencias o gems de nuestro proyecto....gem rails-i18n...b. Luego instalamos estos gems ejecutando el siguiente comando en la consola:$ bundle install
  • 7. Hola Mundo en RailsLuego cambiamos la configuración de Rails adaptándolo a nuestro idioma y zona horaria.Hacemos estos incluyendo las siguientes lineas en el archivo config/application.rbmodule MiAppclass Application < Rails::Application...# Establecer zona horariaconfig.time_zone = America/Tegucigalpa# Establecer idioma, conf. regionalconfig.i18n.default_locale = es...
  • 8. Hola Mundo en Rails6. Crear un controlador llamado Paginas y una acción inicio. # Nuestra clase controladora debe extender a # ApplicationController class PaginasController < ApplicationController # La accion se crea como un metodo de la clase def inicio @mensaje = "Hola Mundo" end end7. Crear una plantilla HTML llamada inicio.html.erb dentro de app/views/paginas <%= # Embebemos codigo de Ruby haciendo uso de los tags <%= y %> de forma similar a PHP %> <h1><%= @mensaje %></h1>
  • 9. Hola Mundo en Rails8. Por último mapeamos una URL a nuestro controlador en el ruteador MiApp::Application.routes.draw do # Especificamos nuestro controlador y acción separados mediante un simbolo de # match inicio => paginas#inicio ... end Ejecutando nuestra aplicación:Para probar nuestra aplicación primero debemos iniciar un servidor web, Rails ya viene incorporado con uno llamado Webrick.
  • 10. Hola Mundo en RailsEjecutando nuestra aplicación (continuación):1. Iniciar el servidor web ejecutando el siguiente comando dentro del directorio de nuestra app $ rails server2. Ingresamos en un navegador web la URL que corresponde a la ruta que establecimos. Webrick escucha por defecto en el puerto 3000 http://localhost:3000/inicioLa página web resultante debería mostrar el mensaje Hola Mundo
  • 11. Entornos de ejecución en RailsPor defecto los nuevos proyectos de Rails vienen pre-configurados con tres (3) entornos de ejecución, los cuales consisten en configuraciones tales como: base de datos, caches, logs, gems a utilizar etc.Desarrollo. Es aquel que utilizamos mientras la app esta en proceso de creaciónPruebas. Se usa para la ejecución de los casos de prueba. Útil en Test Driven Development (TDD)Producción. Utilizado durante la ejecución en vivo o antes los usuarios reales.
  • 12. Resources (Recursos) y RESTREST (acrónimo de Transferencia de Estado Representacional) es un estilo de arquitectura de software para Web.Rails hace uso intensivo de esta técnica para representar recursos/objetos -por ejemplo: entidades de datos- y realizar operaciones CRUD (Create/Read/Update/Delete) sobre los mismos.En este contexto REST básicamente es un esquema de URLs y métodos HTTP que representan operaciones (leer, crear, actualizar, ver nómina, etc) sobre un recurso, digamos, un Empleado.
  • 13. Resources (Recursos) y REST Operación Ruta Método HTTP Ingresar datos /empleados/new GET Crear registro /empleados POST Leer /empleados/1 GET Modificar datos /empleados/1/edit GET Actualizar registro /empleados/1 PUT Eliminar registro /empleados/1 DELETE Listar todos /empleados GET Rutas por defecto creadas por Rails para el recurso EmpleadoComo pueden observar las operaciones que requieren de una interfaz gráfica y no modifican el estado de un recurso (ingresar y actualizar datos, leer, listar) utilizan el método GET.Las demás operaciones que si modifican estados, utilizan el resto de los métodos.
  • 14. Resources (Recursos) y RESTRegistrar un Recurso en RailsSolamente necesitamos abrir el archivo de rutas (ubicado en config/routes.rb) y agregar la siguiente linea: MiApp::Application.routes.draw do ... resources :empleados ... endEsto hace que Rails automáticamente cree rutas y métodos de ayuda para las siete operaciones descritas anteriormente. Además es posible incorporar nuevas fácilmente.
  • 15. Creación de un modelo de datosVirtualmente todas las aplicaciones web necesitan acceder a un almacén de datos que les permita recuperar información persistente y generar contenido dinámico.La M de Modelo en MVC hace alusión a esto, al modelo de datos subyacente. En Rails esto se gestiona a través de un módulo del núcleo conocido como Active Record (Registro Activo).A diferencia de otros frameworks de BD (como Hibernate), Active Record casi no requiere de modificaciones ya que Rails en general opta por convención sobre configuración.
  • 16. Creación de un modelo de datosOtro aspecto importante es que Rails permite realizar operaciones genéricas sobre la base de datos, es decir, independiente del DBMS que se utilice.Pasos para crear un modelo de datos1. Configurar la base de datos. Rails por defecto utiliza SQLite. Podemos cambiarla en el archivo config/database.ymlYML es un lenguaje utilizado por Rails para almacenar configuraciones de una forma más simple.
  • 17. Creación de un modelo de datosdevelopment: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000test: ...production: ... 2. Crear el modelo y migración de nuestra base de datos. Tomemos un ejemplo simple de una aplicación de blogs:
  • 18. Creación de un modelo de datosEjecutamos los siguientes comandos: $ rails generate model Entrada titulo:string contenido:string $ rails generate model Comentario texto:string entrada_id:integer3. Editar la migración generada por Rails, adaptándola a nuestras necesidades class CreateEntradas < ActiveRecord::Migration def change create_table :entradas do |t| t.string :titulo t.string :contenido # Crea dos columnas: created_at y updated_at t.timestamps end add_index :entradas, :id end
  • 19. Creación de un modelo de datos3. Ejecutar la migración y por ende la creación de las respectivas tablas $ rake db:migratePodemos confirmar que la base de datos y tablas fueron creadas inspeccionando el archivo de datos de SQLite.En lo personal prefiero utilizar SQLite Manager pero también existen otras alternativas libres
  • 20. Creación de un modelo de datos4. Abrimos los modelos de Active Record generados previamente y agregamos relaciones, validaciones y otras conf. necesariasclass Entrada < ActiveRecord::Base alias_attribute :fecha_publicacion, :created_at has_many :comentarios validates :titulo, :length => 10..80 validates :contenido, :length => { :maximum => 255 }, :presence => trueendclass Comentario < ActiveRecord::Base alias_attribute :fecha_publicacion, :created_at belongs_to :entrada validates :texto, :length => { :maximum => 255 }, :presence => true validates :entrada, :presence => trueend
  • 21. Almacenamiento de registrosAhora procedamos a crear nuevas entradas y comentarios:1. Registramos las entradas y comentarios como un recurso de Rails Miaga::Application.routes.draw do ... resources :entradas resources :comentarios ... end
  • 22. Almacenamiento de registros2. Creamos el controlador y la acciones para ingresar y ver una entrada class EntradasController < ApplicationController # Formulario de ingreso de nueva entrada def new ... end # Insertar entrada en BD def create ... end # Mostrar entrada def show ... end end
  • 23. Almacenamiento de registros3. Creamos las respectivas plantillas o vistas. Es importante señalar que Rails utiliza layouts los cuales son plantillas que por defecto se aplican a todas las acciones, aquí ponemos elementos de diseño que se repiten en todas las páginas.3.1 Modificamos el layout por defecto para incluir el título de nuestras páginas y una caja de mensajes. <html> <head>...</head> <body> <h1><%= @titulo_pagina %></h1> <% #incluimos otra plantilla para mostrar mensajes %> <%= render shared/mensajes %> <%= yield %> </body> </html>
  • 24. Almacenamiento de registros3.2 Creamos la vista del formulario de ingreso en app/views/entradas/new.html.erb<%= render shared/validaciones, :entidad => @entrada %><%= form_for @entrada do |f| %> <%= f.label :titulo, Título: %><br /> <%= f.text_field :titulo %><br /><br /> <%= f.label :contenido, Contenido: %><br /> <%= f.text_area :contenido, :size => 80x6 %><br /> <%= f.submit Guardar %><% end %>
  • 25. Almacenamiento de registros 3.3. Ahora creamos la plantilla que mostrará la información de cada entrada en app/views/entradas/show.html.erb<%= render shared/validaciones, :entidad => @nuevo_comentario %><h3 class=titulo>Título: <%= @entrada.titulo %></h3><strong>Contenido</strong><br /><p><%= @entrada.contenido %></p><%= link_to Ir a lista de entradas, entradas_path %>
  • 26. Incluyendo comentariosAhora vamos a mostrar los comentarios de cada entrada y un formulario de ingreso. Para ello seguimos los siguientes pasos:1. Creamos el controlador de los comentarios, pero ahora solamente definimos la acción create. class ComentariosController < ApplicationController # Insertar comentario en BD def create ... end end
  • 27. Incluyendo comentarios2. Modificamos la plantilla de entradas, ya que desde cada entrada se podrán ver y asociar nuevos comentarios.<div id="comentarios"><h2>Comentarios</h2><%= form_for @nuevo_comentario do |f| %> <%= f.label :texto, Nuevo Comentario %><br /> <%= f.text_area :texto, :size => 60x4 %><br /> <%= f.hidden_field :entrada_id, :value => @entrada.id%> <%= f.submit Enviar %><% end %><h3>Mostrando <%= pluralize @comentarios.count, comentario %></h3><% @comentarios.each do |comentario| %> <em>Publicado a las <%= comentario.fecha_publicacion.strftime("%I:%M %p") %></em> <%= comentario.texto %><% end %></div>
  • 28. Incluyendo comentariosAlgunas observaciones con respecto a la plantilla anterior:Hemos incluido un hidden field que envía el ID de la entrada relacionada.Utilizamos el método pluralize que permite mostrar una frase en plural o singular según el valor suministradoHemos utilizado el alias fecha_publicacion en lugar del campo created_at de la base de datosLa fechas en Rails poseen un método llamado strftime que permite especificar el formato en que se mostrará la fecha.
  • 29. ReferenciasSitio oficial de Ruby en español: http://www.ruby-lang.org/es/Sitio web oficial de Rails: http://rubyonrails.orgRails Casts: http://railscasts.comLibros recomendadosRuby on Rails Tutorial (Gratis): http://ruby.railstutorial.orgThe Rails 3 Way por Obie Fernández
  • 30. Gracias por su atención Esta presentación se encuentra disponible en: www.slideshare.net/Socrattes Pueden descargar el código fuente en:github.com/Socrattes2099/RubyOnRails-FLISOL

×