Un vistazo a Rails
La plataforma de desarrollo web de los samurais
Esteban Manchado Velázquez
<zoso@grupocpd.com>
Grupo CPD
Presentaciones
[any material that should appear in print but not on the slide]
Ruby
Don't underestimate the human factor. Even though we are in front of
computers, they are media. We are working for human, with human.
Ruby
- (Perl + Smalltalk) / 2
- Completamente orientado a objetos
- Duck typing (si suena como un pato...)
- Sintaxis «humana»
- Sangrado libre
- Se busca la belleza
Potencia y seguridad
Winston Churchill (con su rifle Tonshi): «El precio de la grandeza es la
responsabilidad»
La Tonshi
Un rifle Tonshi y sus usos. El de la derecha programa(ba) en PHP a pelo.
Rails
- MVC (Model-View-Controller)
- DRY (Don't Repeat Yourself)
- Productividad
- Programación metrosexual
¿Metrosexual?
Beauty leads to happiness, happiness leads to productivity,
thus beauty leads to productivity.
Modelo
class Sugerencia < ActiveRecord::Base
end
Modelo
class Sugerencia < ActiveRecord::Base
validates_presence_of :descripcion
belongs_to :sugerente,
:foreign_key => 'cumplimentador',
:class_name => 'Entidad'
has_many :rebotes, :order => "fecha DESC"
has_many :envios_comite,:order => "fecha_envio",
:class_name => "EnvioComite"
has_many :premios, :order => "fecha_resolucion",
:class_name => "EnvioComite",
:conditions
=> "premio <> '' AND
premio IS NOT NULL"
def tipo
sugerente.forma_juridica == 'PM' ? EXTERNA :
INTERNA
end
end
Vista
<h1>Cierre - </h1>
<div style="margin-top: 2ex"></div>
<div class="panel">
<div class="aviso">
No se ha enviado todavía el acuse de recibo
</div>
<input type="button" class="boton" name="acuse"
value="Enviar ahora">
</div>
Controlador
class SugerenciasController < ApplicationController
def list
if tipo_usuario == :empleado
redirect_to :action => 'estado'
return
end
@sugerencias = Sugerencia.find(:all, :limit => 5,
:order => "fecha")
end
def show
@sugerencia = Sugerencia.find(params[:id])
end
def new
@sugerencia = Sugerencia.new
end
end
Otras cosas de Rails
- Servidor web
- Consola
- Ajax
- Migraciones
- Baterías de pruebas
- Depuración
- Servicios web
- Extensiones