Diapositivas de la presentación del fabuloso framework de desarollo Ruby On Rails usando la versión 2. Exposición realizada en el encuentro de Software Libre realizado por la Universidad Autónoma en Talca, Chile
Presentacion Ruby on Rails en Universidad Autónoma 2009
1. Ruby On Rails
Desarrollo de aplicaciones
web sin dolor
por Nelson Rojas Núñez
2. ¿Quién expone?
Nelson Rojas Núñez
Ing. Ejec. Computación UCM Talca
Desarrollador de día y Docente
Universitario algunas noches
3. ¿Qué es Rails?
Es un framework de código
abierto escrito en Ruby
que sirve para desarrollar
aplicaciones web que
acceden a base de datos
4. ¿Qué tiene de especial?
Puedes desarrollar una aplicación
web 10 veces más rápido que lo
que tardarías con un típico
framework java y sin sacrificar la
calidad de la aplicación
6. ¿Cómo es posible?
•Ruby tiene un gran poder y
además es sencillo
•Dos principios en Rails
oMenos Software (DRY)
oConvenciones sobre
configuraciones (COC)
11. Separación de código
M V C
Modelo
para los datos
Vista
para la Interfaz
Controlador
dirige la
orquesta
12. Modelo
• Para acceder a los datos
• Módulo: ActiveRecord
• Una clase representa una tabla
• Se descubren automáticamente los campos
• Se pueden declarar relaciones con otros
modelos/tablas
• Se puede personalizar y añadir métodos
• CRUD: CREATE READ UPDATE DELETE
13. Ejemplo de Modelo
class Aviso < ActiveRecord::Base
belongs_to :categoria
def activo?
self.vencimiento > Time.now
end
end
14. Vista
• Para decidir el aspecto
• Módulo: ActionView
• Plantillas en formato Embedded Ruby
• HTML con Ruby embebido
• Una por cada acción de cada controlador
• Corolario: dependen de los controladores
• HTML repetitivo, a funciones externas o helpers
15. Ejemplo de Vista
<h1>Lista de avisos</h1>
<% for aviso in @avisos %>
<p><%= aviso.titulo %></p>
<% end %>
16. Controlador
• Director de orquesta: recibe las peticiones desde el
exterior (browser/vistas), conecta con los modelos
y retorna el resultado como vista.
• Módulo: ActionPack
• Cada controlador una clase Ruby
• Cada método, una acción
17. Ejemplo de Controlador
class AvisosController < ApplicationController
def index
@avisos = Aviso.all
end
end
19. Herramientas
• En ./script/
ogenerate (genera codigo)
o plugin (incluir codigo de 3ros)
oserver (servidor simple)
oconsole (consola interactiva)
odbconsole (consola base datos)
o runner (ejecuta trozos de Ruby)
20. Rakefile
• Similar a make, pero en Ruby
• Incluye
o stats (estadisticas)
o doc (generar documentacion)
o test (realizar pruebas)
omigrate (migraciones de BD)
22. ActiveRecord
Database agnostic
Capa ORM de Rails
Tablas como clases
Registros como objetos
Columnas como objetos
Crecimiento incremental
23. Ejemplo ActiveRecord
creando la tabla
*con sql normal
create table avisos (
id bigint not null primary key auto_increment,
contenido text,
categoria_id int,
created_at timestamp,
updated_at timestamp);
*con el generador de ruby
script/generate model aviso contenido:text categoria_id:integer
rake db:migrate
class Aviso < ActiveRecord::Base
end
24. Ejemplo ActiveRecord
Todos los registros de la tabla avisos
*con sql normal
select * from avisos;
*con ActiveRecord
@avisos = Aviso.find(:all) , o su abreviatura
@avisos = Aviso.all
Todos los registros de la categoria 10
*con sql normal
select * from avisos where categoria_id = 10;
*con ActiveRecord
@avisos = Aviso.find_all_by_categoria_id(10)
** metodos mágicos sin siquiera definirlos
25. Asociaciones en
ActiveRecord
class Aviso < ActiveRecord::Base
belongs_to :categoria
#proviene de categoria
end
class Categoria < ActiveRecord::Base
has_many :avisos
#tiene muchos avisos
end
categUosruiaasrio
id
avisos
id
categoria_id
26. ActionPack
Compuesto por ActionController y
ActionView
Juntos permiten procesar los
requerimientos entrantes y
generar las respuestas de salida
27. ActionController
Recibe las peticiones desde el
navegador generalmente de este
modo
http://sitio/controller/action/id
p.e. http://profenelson.cl/posts/show/1
Controlador posts, accion show, id = 1
28. ActionController
Se puede modificar las rutas para que tengan
mejor aspecto y otro tipo de utilidad
Por ejemplo
http://sitio/noticias/2009/11/26
http://sitio/login
map.login 'login', :controller => 'sessions', :action => 'new'
En vez de usar
http://sitio/sessions/new
30. Lo que dice gente
inteligente acerca de Rails
"Rails es el framework de desarrollo web mejor
pensado que he usado, y puedo decirlo luego de
una década de hacer aplicaciones web para vivir.
He construido mis propios frameworks, he
ayudado a desarrollar el API Servlet, y he creado
varios servidores web a partir de cero. Nadie lo ha
hecho así antes."
James Duncan Davidson, creador de Tomcat y Ant
31. Lo que dice gente
inteligente acerca de Rails
"Después de investigar el mercado, Ruby on Rails
se destacó como la mejor opción. Hemos sido muy
felices con esa decisión. Vamos a seguir
construyendo en Rails y consideramos que es una
ventaja clave de negocio. "
Evan Williams, creador de Blogger, Odeo, y Twitter
32. Lo que dice gente
inteligente acerca de Rails
"Rails es la aplicación de Ruby."
Yukihiro Matsumoto, creador de Ruby