Desarrollo de Apps Web en Ruby on Rails
-
Upload
freelancer -
Category
Technology
-
view
16.946 -
download
0
Transcript of Desarrollo de Apps Web en Ruby on Rails
Red Noise Shapes
Ruby on Rails 3
Qu es Ruby on Rails?
Por qu elegir Rails?
MVC (Modelo-Vista-Controlador)
Hola Mundo en Rails
Entornos de ejecucin en Rails
Resources (Recursos) y REST
Almacenamiento de Registros
Incluyendo comentarios
Referencias
ExpositorBayron Jos GuevaraDigital Sense S.A. de C.V.Fundador y Presidente
www.digitalsensehn.com
Qu es Ruby on Rails?
Rails es un framework o entorno de programacin escrito en Ruby para el desarrollo de aplicaciones Web.Ruby es un lenguaje de programacin 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 mquina.
#mostrar contenido de un archivoFile.open(ejemplo.txt).each do |linea| puts lineaend
1. Proporciona un Stack completo de tecnologas Web (Todo en uno)
2. Solidez y madurez. Twitter, Groupon, Github3. Pensado en la productividad (Enfatiza convencin sobre configuracin)4. Comunidad grande y licencia libre (MIT)
Por qu elegir Rails sobre otros frameworks?
MVC (Modelo-Vista-Controlador)
Rails es fundamentalmente una implementacin de un patrn de diseo de software conocido como MVC.Este divide un sistema en tres componentes:El modelo de datos
La vista o interfaz grfica
El controlador que contiene la 'lgica del negocio'.
Hola Mundo en Rails
Pasos: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
3. Crear nuevo proyecto en Rails
4. Comienza la accin. 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)
$ gem install rails
$ rails new mi_app
5. Configurar del entorno.
Instalamos el gem rails-i18n para habilitar la traduccin al espaol
de Rails, siguiendo estos pasos:a. Editamos el archivo Gemfile
donde agregamos las dependencias o gems de nuestro proyecto.
b. Luego instalamos estos gems ejecutando el siguiente comando en la consola:
Hola Mundo en Rails
...gem 'rails-i18n'...
$ bundle install
Luego cambiamos la configuracin de Rails adaptndolo a nuestro idioma y zona horaria.Hacemos estos incluyendo las siguientes lineas en el archivo config/application.rb
Hola Mundo en Rails
module MiAppclass Application < Rails::Application...# Establecer zona horariaconfig.time_zone = 'America/Tegucigalpa'# Establecer idioma, conf. regionalconfig.i18n.default_locale = 'es'...
6. Crear un controlador llamado Paginas y una accin inicio.
7. Crear una plantilla HTML llamada inicio.html.erb dentro de app/views/paginas
Hola Mundo en Rails
# 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" endend
8. Por ltimo mapeamos una URL a nuestro controlador en el ruteador
Ejecutando nuestra aplicacin:Para probar nuestra aplicacin primero
debemos iniciar un servidor web, Rails ya viene incorporado con uno
llamado Webrick.
Hola Mundo en Rails
MiApp::Application.routes.draw do # Especificamos nuestro
controlador y accin separados mediante un simbolo de #
match 'inicio' => 'paginas#inicio'...end
Ejecutando nuestra aplicacin (continuacin):1. Iniciar el servidor web ejecutando el siguiente comando dentro del directorio de nuestra app
2. Ingresamos en un navegador web la URL que corresponde a la
ruta que establecimos.
Webrick escucha por defecto en el puerto 3000
La pgina web resultante debera mostrar el mensaje 'Hola Mundo'
Hola Mundo en Rails
$ rails server
http://localhost:3000/inicio
Por defecto los nuevos proyectos de Rails vienen pre-configurados con tres (3) entornos de ejecucin, 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 creacin
Pruebas. Se usa para la ejecucin de los casos de prueba. til en Test Driven Development (TDD)
Produccin. Utilizado durante la ejecucin en vivo o antes los usuarios reales.
Entornos de ejecucin en Rails
REST (acrnimo de Transferencia de Estado Representacional) es un estilo de arquitectura de software para Web.Rails hace uso intensivo de esta tcnica para representar recursos/objetos -por ejemplo: entidades de datos- y realizar operaciones CRUD (Create/Read/Update/Delete) sobre los mismos.En este contexto REST bsicamente es un esquema de URLs y mtodos HTTP que representan operaciones (leer, crear, actualizar, ver nmina, etc) sobre un recurso, digamos, un Empleado.
Resources (Recursos) y REST
Resources (Recursos) y REST
OperacinRutaMtodo HTTP
Ingresar datos/empleados/newGET
Crear registro/empleadosPOST
Leer/empleados/1GET
Modificar datos/empleados/1/editGET
Actualizar registro/empleados/1PUT
Eliminar registro/empleados/1DELETE
Listar todos/empleadosGET
Rutas por defecto creadas por Rails para el recurso Empleado
Como pueden observar las operaciones que requieren de una interfaz grfica y no modifican el estado de un recurso (ingresar y actualizar datos, leer, listar) utilizan el mtodo GET.Las dems operaciones que si modifican estados, utilizan el resto de los mtodos.
Registrar un Recurso en RailsSolamente necesitamos abrir el archivo de rutas (ubicado en config/routes.rb) y agregar la siguiente linea:
Esto hace que Rails automticamente cree rutas y mtodos de ayuda para las siete operaciones descritas anteriormente. Adems es posible incorporar nuevas fcilmente.
Resources (Recursos) y REST
MiApp::Application.routes.draw do... resources :empleados...end
Virtualmente todas las aplicaciones web necesitan acceder a un almacn de datos que les permita recuperar informacin persistente y generar contenido dinmico.La M de Modelo en MVC hace alusin a esto, al modelo de datos subyacente. En Rails esto se gestiona a travs de un mdulo del ncleo 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 convencin sobre configuracin.
Creacin de un modelo de datos
Otro aspecto importante es que Rails permite realizar operaciones genricas sobre la base de datos, es decir, independiente del DBMS que se utilice.Pasos para crear un modelo de datos
1. 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 ms simple.
Creacin de un modelo de datos
2. Crear el modelo y migracin de nuestra base de datos. Tomemos un ejemplo simple de una aplicacin de blogs:
Creacin de un modelo de datos
development: adapter: sqlite3 database: db/development.sqlite3 pool: 5 timeout: 5000
test: ...production: ...
Ejecutamos los siguientes comandos:
3. Editar la migracin generada por Rails, adaptndola a nuestras necesidades
Creacin de un modelo de datos
$ rails generate model Entrada titulo:string contenido:string
$ rails generate model Comentario texto:string entrada_id:integer
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, :idend
3. Ejecutar la migracin y por ende la creacin de las respectivas tablas
Podemos 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 tambin existen otras alternativas libres
Creacin de un modelo de datos
$ rake db:migrate
4. Abrimos los modelos de Active Record generados previamente y agregamos relaciones, validaciones y otras conf. necesarias
Creacin de un modelo de datos
class Entrada < ActiveRecord::Base alias_attribute :fecha_publicacion, :created_at has_many :comentarios validates :titulo, :length => 10..80 validates :contenido, :length => { :maximum => 255 }, :presence => trueend
class Comentario < ActiveRecord::Base alias_attribute :fecha_publicacion, :created_at belongs_to :entrada validates :texto, :length => { :maximum => 255 }, :presence => true validates :entrada, :presence => trueend
Almacenamiento de registros
Ahora 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
Almacenamiento de registros
2. 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
... endend
Almacenamiento de registros
3. Creamos las respectivas plantillas o vistas.
Es importante sealar que Rails utiliza layouts los cuales son
plantillas que por defecto se aplican a todas las acciones, aqu
ponemos elementos de diseo que se repiten en todas las pginas.3.1
Modificamos el layout por defecto para incluir el ttulo de nuestras
pginas y una caja de mensajes.
...
3.2 Creamos la vista del formulario de ingreso en app/views/entradas/new.html.erb
Almacenamiento de registros
@entrada %>
'80x6' %>
3.3. Ahora creamos la plantilla que mostrar la informacin de cada entrada en app/views/entradas/show.html.erb
Almacenamiento de registros
@nuevo_comentario %>
Ttulo:
Contenido
Ahora 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 accin create.
Incluyendo comentarios
class ComentariosController < ApplicationController # Insertar comentario en BD def create ... endend
2. Modificamos la plantilla de entradas, ya que desde cada entrada se podrn ver y asociar nuevos comentarios.
Incluyendo comentarios
Comentarios
'60x4' %>
@entrada.id%>
Mostrando
Publicado a las
Algunas observaciones con respecto a la plantilla anterior:Hemos incluido un hidden field que enva el ID de la entrada relacionada.
Utilizamos el mtodo pluralize que permite mostrar una frase en plural o singular segn el valor suministrado
Hemos utilizado el alias fecha_publicacion en lugar del campo created_at de la base de datos
La fechas en Rails poseen un mtodo llamado strftime que permite especificar el formato en que se mostrar la fecha.
Incluyendo comentarios
Referencias
Sitio oficial de Ruby en espaol: http://www.ruby-lang.org/es/
Sitio web oficial de Rails: http://rubyonrails.org
Rails Casts: http://railscasts.com
Libros recomendadosRuby on Rails Tutorial (Gratis): http://ruby.railstutorial.org
The Rails 3 Way por Obie Fernndez
Gracias por su atencin
Esta presentacin se encuentra disponible en:
www.slideshare.net/Socrattes
Pueden descargar el cdigo fuente en:
github.com/Socrattes2099/RubyOnRails-FLISOL
Click to edit the title text format