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

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

¿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

<% if controller.de_calidad? and @sugerencia.cerrada? %>
  <h1>Cierre - <%= @sugerencia.estado_largo %></h1>
<% end %>

<%= render_partial('sugerencia') %>

<% if @sugerencia.tipo == Sugerencia::INTERNA %>
 <div style="margin-top: 2ex"></div>
 <% if @sugerencia.recibos.empty? %>
    <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>
 <% end %>
<% end %>

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

¿Preguntas?