You are on page 1of 16

TALLER RUBY ON RAILS

Que es Ruby

Ruby es un lenguaje de programación interpretado, reflexivo y orientado a objetos, creado por el


programador japonés Yukihiro "Matz" Matsumoto, quien comenzó a trabajar en Ruby en 1993, y
lo presentó públicamente en 1995. Ruby es un lenguaje de programación interpretado en una sola
pasada y su implementación oficial es distribuida bajo una licencia de software libre.

Que es rails

Rails es un framework para el desarrollo de aplicaciones web, software libre por naturaleza, está
basado en el patrón de diseño Modelo Vista Controlador (MVC).
3. Defina la arquitectura MVC, ayúdese con una gráfica y explique sus componentes

Rails está basado en estos principios de desarrollo; Modelo/Vista/Controlador

Definición de las partes:

El Modelo: Es el objeto que representa los datos del programa. Maneja los datos y controla todas
sus transformaciones. El Modelo no tiene conocimiento específico de los Controladores o de las
Vistas, ni siquiera contiene referencias a ellos. Es el propio sistema el que tiene encomendada la
responsabilidad de mantener enlaces entre el Modelo y sus Vistas, y notificar a las Vistas cuando
cambia el Modelo.

La Vista: Es el objeto que maneja la presentación visual de los datos representados por el Modelo.
Genera una representación visual del Modelo y muestra los datos al usuario. Interactúa con el
Modelo a través de una referencia al propio Modelo.

El Controlador: Es el objeto que proporciona significado a las órdenes del usuario, actuando sobre
los datos representados por el Modelo. Cuando se realiza algún cambio, entra en acción, bien sea
por cambios en la información del Modelo o por alteraciones de la Vista. Interactúa con el Modelo
a través de una referencia al propio Modelo.
Que es un IDE (programación)

Un IDE es un entorno de programación que ha sido empaquetado como un programa de


aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un
constructor de interfaz gráfica (GUI). Los IDEs pueden ser aplicaciones por sí solas o pueden ser
parte de aplicaciones existentes.
Los IDE proveen un marco de trabajo amigable para la mayoría de los lenguajes de programación
tales como C++, Python, Java, C#, Delphi, Visual Basic, etc.

Framework

Un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con


artefactos o módulos de software concretos, con base en la cual otro proyecto de software puede
ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un
lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes
componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del
dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las
aplicaciones del dominio.

GEM (administrador de ejecución de gráficos)

Es una unidad de manejo de memoria moderna, especializada para uso en controladores de


dispositivo para chipsets gráficos.
El GEM se asegura de que no existan conflictos en la compartición de datos entre aplicaciones,
administrando la sincronización de la memoria.

Clase

En la programación orientada a objetos, una clase es una construcción que se utiliza como un
modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y el
comportamiento que todos los objetos de la clase comparten. Un objeto de una determinada
clase se denomina una instancia de la clase. La clase que contiene (y se utilizó para crear) esa
instancia se puede considerar como del tipo de ese objeto, por ejemplo, una instancia del objeto
de la clase "Personas" sería del tipo "Personas".
Una clase por lo general representa un sustantivo, como una persona, lugar o (posiblemente
bastante abstracta) cosa - es el modelo de un concepto dentro de un programa de computadora.
Fundamentalmente, encapsula el estado y el comportamiento del concepto que representa.
Encapsula el estado a través de marcadores de datos llamados atributos (o variable miembro o
variables de instancia), encapsula el comportamiento a través de secciones de código reutilizables
llamados métodos.

8. Defina la estructura de un proyecto rails (versión 3)

La característica más destacable de un proyecto Rails es la división física de los archivos, para
fortalecer la división de sus funciones siguiendo el patrón Modelo-Vista-Controlador. Veamos los
directorios más empleados de los que componen esta estructura.
App

Esta carpeta contiene los archivos que forman el sitio, repartidos según sus características en los
subdirectorios controllers, helpers, models y views.

Models: la función principal de los modelos es la obtención de datos, almacenados en una base
de datos, un fichero, etc., y de controlar la integridad de estos datos.

Views: en una página web, las vistas son las distintas interfaces del usuario. A su vez, contiene
una carpeta denominada Layout. Aquí, están unos ficheros que incluyen, básicamente, el apartado
head de un archivo html. Después, por medio de bloques Ruby, se añade el cuerpo de las vistas
para conformar el fichero completo.

Controllers: guarda los archivos correspondientes a los controladores del sistema. Su trabajo
consiste en recibir eventos del usuario (envío de formulario, pulsación de un enlace), invocar al
modelo para recuperar los datos que necesita, y trasladarlos a la vista, para que los muestre.
Cuando se definen las acciones de un controlador, se debe crear una vista para cada una de estas
acciones. Cuando se invocan estos métodos, tras su ejecución, se muestra automáticamente la
vista correspondiente al método ejecutado. A su vez, si es necesario, se puede crear un modelo
para el controlador.

config
En esta carpeta, se almacenan los archivos de configuración del proyecto. Los archivos que
nosotros solemos modificar son routes.rb y database.yml. En el primero, es posible modificar el
controlador y su acción que se ejecutarán al acceder al sitio. En el otro, podemos modificar el
nombre de la base de datos asociada al proyecto.

db
Principalmente, esta carpeta incluye las migraciones, es decir, los archivos de creacion y edición de
la base de datos relacionada con el proyecto.

doc
Aquí se almacena la documentación del proyecto.

Los log
Archivos guardados en este directorio son registros de la ejecución del sitio.

public
Este directorio tiene las imágenes que se muestran en las distintas vistas del proyecto, así como
las hojas de estilo empleadas. DEFINICION DE CONCEPTOS SOBRE RUBY ON RAIL
Imagen de una estructura de un proyecto rails (versión 3)

9. Defina la arquitectura Cliente Servidor

La arquitectura cliente-servidor consiste básicamente en un cliente que realiza peticiones a otro


programa (el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se
ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario
distribuido a través de una red de computadoras.

En esta arquitectura la capacidad de proceso está repartida entre los clientes y los servidores,
aunque son más importantes las ventajas de tipo organizativo debidas a la centralización de la
gestión de la información y la separación de responsabilidades, lo que facilita y clarifica el diseño
del sistema.

La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no se
ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa. Los tipos
específicos de servidores incluyen los servidores web, los servidores de archivo, los servidores del
correo, etc. Mientras que sus propósitos varían de unos servicios a otros, la arquitectura básica
seguirá siendo la misma.

Una disposición muy común son los sistemas multicapa en los que el servidor se descompone en
diferentes programas que pueden ser ejecutados por diferentes computadoras aumentando así el
grado de distribución del sistema.

La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay


distribución, tanto a nivel físico como a nivel lógico.
La red cliente-servidor es aquella red de comunicaciones en la que todos los clientes están
conectados a un servidor, en el que se centralizan los diversos recursos y aplicaciones con que se
cuenta; y que los pone a disposición de los clientes cada vez que estos son solicitados. Esto
significa que todas las gestiones que se realizan se concentran en el servidor, de manera que en él
se disponen los requerimientos provenientes de los clientes que tienen prioridad, los archivos que
son de uso público y los que son de uso restringido, los archivos que son de sólo lectura y los que,
por el contrario, pueden ser modificados, etc. Este tipo de red puede utilizarse conjuntamente en
caso de que se esté utilizando en una red mixta.

Que es una arquitectura

Una arquitectura es un entramado de componentes funcionales que aprovechando diferentes


estándares, convenciones, reglas y procesos, permite integrar una amplia gama de productos y
servicios informáticos, de manera que pueden ser utilizados eficazmente dentro de la
organización.

Debemos señalar que para seleccionar el modelo de una arquitectura, hay que partir del contexto
tecnológico y organizativo del momento y, que la arquitectura Cliente/Servidor requiere una
determinada especialización de cada uno de los diferentes componentes que la integran.

Que es un cliente

Es el que inicia un requerimiento de servicio. El requerimiento inicial puede convertirse en


múltiples requerimientos de trabajo a través de redes LAN o WAN. La ubicación de los datos o de
las aplicaciones es totalmente transparente para el cliente.

Que es un servidor

Es cualquier recurso de cómputo dedicado a responder a los requerimientos del cliente. Los
servidores pueden estar conectados a los clientes a través de redes LANs o WANs, para proveer de
múltiples servicios a los clientes y ciudadanos tales como impresión, acceso a bases de datos, fax,
procesamiento de imágenes, etc.

Como se llama el archivo de configuración de la base de datos en rails

Para configurar la conexión a la base de datos, rails pone a nuestra disposición el archivo
“database.yml” ubicado en config -> database.yml. Este archivo nos permite configurar la
conexión a tres bases de datos. Tres bases de datos para tres entornos: development (desarrollo),
test (prueba) y production (producción).

Haga una conexión de base de datos en sqlite3 y rails

Haga una conexión de base de datos en mysql y rails


Que es scaffold

La palabra Scaffold está en inglés y en español significa Andamio, pero en programación el


scaffolding es un método para construir aplicaciones basadas en bases de datos, esta técnica está
soportada por algunos frameworks del tipo MVC en el cuál el programador escribe una
especificación que describe cómo debe ser usada la base de datos. Luego el compilador utiliza esa
especificación para generar el código que la aplicación usará para crear, leer, actualizar y eliminar
registros de la base de datos, esto es conocido como CRUD (create, read, update, delete).El
Scaffolding fue popularizado por el framework Ruby on Rails y ahora es utilizado por otros
frameworks también cómo CakePHP, Symfony.

Que son las rutas REST en rails

Es un paradigma para definir rutas en aplicaciones web. En base a REST, las aplicaciones de Rails
determinan qué parte de aplicación mostrar y cómo responder a las solicitudes del usuario.

Que va en la capa model

Que es ORM (object-relational mapping)

El ORM es un componente de software que me permite trabajar con los datos persistidos como si
ellos fueran parte de una base de datos orientada a objetos (en este caso virtual). Debido a que lo
standard es trabajar con BD relacionales, se deben realizar operaciones que permitan transformar
un registro en objeto y viceversa. A esta funcionalidad se la llama Mapeo objeto-relacional (ORM).

Que es Active Record

Es un objeto que representa una fila en una tabla de una base de datos, encapsula su acceso a la
base de datos y añade lógica de negocio.
Es la aproximación más obvia, poniendo el acceso a la base datos en el propio objeto de negocio.
De este modo es evidente como manipular la persistencia a través del mismo.

Que es CSS y en que capa del modelo mvc se usa

CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a
las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas
cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra,
fondos, colores...

CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. En este
reportaje vamos a ver algunos de los efectos que se pueden crear con las CSS sin necesidad de
conocer la tecnología entera.
EL Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos
de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos. El
patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el
código que provee de datos dinámicos a la página, el modelo es el Sistema de Gestión de Base de
Datos y la Lógica de negocio y el controlador es el responsable de recibir los eventos de entrada
desde la vista.

Que es jquery y para qué sirve

jQuery es una biblioteca o framework de JavaScript, creada inicialmente por John Resig, que
permite simplificar la manera de interactuar con los documentos HTML, manipular el árbol DOM,
manejar eventos, desarrollar animaciones y agregar interacción con la técnica AJAX a páginas web.
jQuery es software libre y de código abierto.

Defina los 3 entornos rails y para que se usa cada uno.

• El entorno de desarrollo: (development) optimiza la productividad del desarrollador. Las


caches apenas operan, así que los cambios en el código de la aplicación se aprecian
rápidamente, sin tener que recompilar o volver a desplegar nada. Sólo hay que recargar la
página del navegador. Por esta razón Ruby on Rails es más rápido en el desarrollo que, por
ejemplo, la plataforma Java 2.
• El entorno de pruebas: (test) está optimizado para ejecutar pruebas unitarias, de
integración y funcionales. Cada vez que se ejecuta una prueba, la base de datos se limpia
de todos sus datos. Ruby on Rails se encarga de poblar la base de datos con datos de
prueba antes de cada test, a través de las fixtures.
• El entorno de producción: (production) es donde se despliega la aplicación final. Este
entorno está optmizado para rendimiento, lo que significa, por ejemplo, que las clases
están en cache.

Como se llama el archivo donde se visualizan los errores

Un log es un registro oficial de eventos durante un rango de tiempo en particular. Para los
profesionales en seguridad informática es usado para registrar datos o información sobre quién,
qué, cuándo, dónde y por qué (who, what, when, where y why) un evento ocurre para un
dispositivo en particular o aplicación.

Que es Migracion y en que carpeta van dentro de un proyecto rails

Para los no iniciados en Ruby on rails, las migraciones permiten establecer el esqueleto de una
base de datos, tablas y campos, al igual que hacemos con sentencias de SQL, sin utilizar
directamente SQL. Además Ruby on rails, nos permite tener un control de las versiones de
migraciones a ejecutar.
Una vez que hemos hecho rails proyecto (siendo proyecto el nombre del proyecto rails) y cd
proyecto (para colocarnos dentro del proyecto de rails recién creado) creamos nuestras
migraciones.
Comentar para recordar, un proyecto rails tiene tres tipos de entornos: desarrollo, pruebas y
producción. El entorno Rails llamado “desarrollo” vuelve a cargar las clases cada vez que llame a
una nueva acción, por lo que siempre tiene una copia actualizada de las clases incluyendo los
cambios más recientes. Mientras que en el entorno de producción carga las clases una vez.

Cuando se crea un nuevo proyecto rails, se crea un archivo database.yml, con los tres entornos
desarrollo, pruebas y producción, dicho archivo se encuentra dentro de la carpeta config.

En que capa se acostumbra hacer las validaciones en rails (validates)

Modelo

Que es el layout

El layout es un esquema de distribución de los elementos dentro de nuestro diseño, el cual


presentaremos al cliente para vender la idea y, a partir de su aceptación, realizar el trabajo final en
base a éste.
Se trata de un conjunto de herramientas que facilitan la creación de presentaciones de diseños
que incluyan modelos de SketchUp

Que son los partials

Partial indica que otras partes de la clase, estructura o interfaz se pueden definir dentro del
espacio de nombres. Todas las partes deben utilizar la palabra clave partial. Todas las partes
deben estar disponibles en tiempo de compilación para formar el tipo final. Todas las partes deben
tener la misma accesibilidad, ya sea public, private, etc.
Si alguna de las partes se declara abstracta, todo el tipo se considera abstracto. Si alguna de las
partes se declara sellada, todo el tipo se considera sellado. Si alguna de las partes declara un tipo
base, todo el tipo hereda esa clase.
Todas las partes que especifican una clase base deben concordar, pero las partes que omiten una
clase base heredan igualmente el tipo base. Las partes pueden especificar diferentes interfaces
base, pero el tipo final implementa todas las interfaces mostradas por todas las declaraciones
parciales. Cualquier miembro de clase, estructura o interfaz declarados en una definición parcial
está disponible para todas las demás partes. El tipo final es la combinación de todas las partes en
tiempo de compilación

En que capa se mapean las relaciones entre las tablas

Capa de enlace de datos.

Explique los tipos de relaciones entre modelos rails


Defina los términos Front-end y back-end

Front-end y back-end son términos que se relacionan con el principio y el final de un proceso.
Estos términos adquieren una relevancia mayor en ciertas áreas particulares

Enuncie y explique brevemente metodologías de desarrollo una ágil y otra tradicional

Teniendo en cuenta la filosofía de desarrollo de las metodologías, aquellas con mayor énfasis en la
planificación y control del proyecto, en especificación precisa de requisitos y modelado, reciben el
apelativo de Metodologías Tradicionales o Pesadas. [27]

Estas metodologías tradicionales imponen una disciplina de trabajo sobre el proceso de desarrollo
del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la
planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo
de desarrollo del producto software. Se centran especialmente en el control del proceso,
mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para
el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se
adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja
en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

Entre las metodologías tradicionales o pesadas podemos citar:

• RUP (Rational Unified Process)

• MSF (Microsoft Solution Framework)

• Win-Win Spiral Model

• Iconix

Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas
que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y
más satisfactoria tanto para los clientes como para los equipos de entrega.

Entre las metodologías ágiles más destacadas hasta el momento se pueden nombrar:

• XP (Extreme Programming)

• Scrum

• Crystal Clear

• DSDM (Dynamic Systems Development Method)

• FDD (Feature Driven Development)

• ASD (Adaptive Software Development)


• XBreed

• Extreme Modeling

Que metodología de desarrollo de software emplearía para rails? Justifíquelo

Incremental por: El concepto inicial de software, análisis de las necesidades, y el diseño de la


arquitectura y colectiva básicas se definen utilizando el enfoque de cascada, seguida por iterativo
de prototipos, que culmina en la instalación del prototipo final.

Que es un plugins Rails

(Plug-in) Programa que puede anexarse a otro para aumentar sus funcionalidades (generalmente
sin afectar otras funciones ni afectar la aplicación principal). No se trata de un parche ni de una
actualización, es un módulo aparte que se incluye opcionalmente en una aplicación. El plugin crea
una lista de tareas, notas, ideas, etc. desde el código de nuestra aplicación.

32. Investigue las convenciones rails sobre sus objetos y construyan una entre todo el grupo
ADSI.

33. Cree el esqueleto de un proyecto rails con sqlite3

34. Arranque el servidor de aplicaciones webrick

Ruby on Rails tiene su propio servidor web, llamado WEBrick, preparado para alojar aplicaciones
Ruby. El servidor está pensado para desarrollo y pruebas, pero no para producción. Se arranca
con script/server.

$> cd $HOME/proyectos/emporium
$> script/server

El servidor escucha por defecto en el puerto 3000. El contenido estátido (html, hojas de estilo y
javascript) es servido desde el directorio public de la aplicación. Las peticiones de contenido
dinámico son despachadas y manejadas por Ruby on Rails.

Hay que abrir la dirección http://localhost:3000/ para ver la pantalla de bienvenida de la aplicación
Emporium (la del fichero index.html). El enlace About your application's environment... lleva a un
conjunto de información técnica sobre la aplicación.

Otras maneras de arrancar el servidor:


 Arranca en el entorno de pruebas:

script/server -e test

 Arranca como demonio en el entorno de pruebas y escuchando en el puerto 80

script/server -d -p 80 -e test

Ahora borremos el fichero index.html, lo cual no impedirá que el controlador del contexto raíz reciba
peticiones, aunque la vista no se mostrará:

$> rm $HOME/projects/emporium/public/index.html

Si recargamos la página en el navegador obtendremos un error porque no hay acción configurada


en el controlador para manejar la petición recibida.

La arquitectura MVC de Ruby on Rails


Una petición HTTP es encaminada desde el browser hacia la implementación de MVC de Ruby on
Rails de la forma siguiente:

http://server/controller/action/id
class Controller < ActionController::Base
def action
params[:id]
end
end

Como ejemplo implementaremos una historia de usuario sencilla: la página About de la aplicación.
Tan sencilla que sólo involucra a controlador y vista.

Generar el esqueleto
El script generate sirve para generar una implementación básica de controladores, modelos y
vistas que hay que modificar posteriormente para adaptarla a las necesidades de nuestra
aplicación. Vamos a ejecutar el srcipt generate para crear un controlador about, una acción index y
los ficheros necesarios.

$> cd $HOME/projects/emporium
$> script/generate controller about index
Este comando genera un controlador, una vista, un helper (código auxiliar) y un test funcional. El
controlador tiene una acción index a la que se llamará por defecto si no se especifica acción alguna
en la URL. Tras volver a arrancar el servidor WEBrick, al abrir la URL http://localhost:3000/about se
debe ver la página recién creada, desprovista de contenido.

Las clases helper son rutinas útiles para mantener el código de las vistas limpias y legibles. Las
vistas no deberían contener una lógica y algoritmos complejos, sino que habría que refactorizarlas
para trasladar el código complejo a clases helper.

Modificar la vista generada


Las vistas son donde se sitúa el código del nivel de presentación que genera, por ejemplo, HTML o
XML. Las vistas están escritas en un lenguaje de plantillas de nombre Embedded Ruby (ERB). El
siguiente ejemplo imprime un texto en el navegador a través de una vista ERB:

<%# Esto es un comentario y no se muestra al usuario %>


<% text = "Esto es código empotrado Ruby" %>
<%= text %>

ERB permite evitar la inyección de código HTML mediante el método h, que es una abreviatura de
html_escape. El siguiente ejemplo imprime por pantalla el texto &<gt.

<%= h('&<>') %>

Vamos a modificar la vista about, situada en el directorio app/views, que es la raíz de todas las
vistas. Cada vista se guarda en un directorio con el nombre del controlador. Por ejemplo, si el
controlador se llama app/controllers/about_controller.rb, la ruta de las vistas de este controlador
será app/views/about.

Cambia la vista app/views/about/index.html.erb para que contenga lo siguiente:

<p>Tienda virtual situada en Cádiz</p>


<h2>Dirección postal</h2>
<address>
Emporium<br/>
C/ Chile 1<br/>
11002 Cádiz, España<br/>
</address>

Ahora recarga la página about en el navegador para comprobar los cambios.

Definir el formato
Los formatos o layouts de Ruby on Rails sirven para rodear el contenido de las páginas con una
cabecera y un pie de página. Se puede conseguir el mismo efecto insertando la cabecera y el pie
en todas las páginas, pero esto atentaría contra el principio DRY de "No te repitas" (Don't Repeat
Yourself), por el que hay que evitar la duplicación de código tanto como sea posible.

Considera el código HTML siguiente generado por Rails:

<html>
<head>
<title>Emporium</title>
</head>
<body>
<!--Content start-->
Page content
<!--Content end-->
</body>
</html>

Todo el contenido situado fuera de los comentarios procede de un fichero de layout. La vista sólo
contiene el texto '"Page content". Un layout minimalista sería el siguiente:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"


"http://www.w3.org/TR/xhtml1/DTD/xhtm...ansitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><%= @page_title || 'Emporium' %></title>
<%= stylesheet_link_tag "style" %>
</head>
<body>
<%= "<h1>#{@page_title}</h1>" if @page_title %>
<%= yield %>
</body>
</html>

Edita el código anterior y guárdalo en app/views/layouts/application.html.erb. Este layout contiene


varias expresiones Ruby:

 La primera expresión define el título de la página por medio de la variable de instancia


page_title de los controladores; si ésta no está definida, proporciona un título por defecto.
 La segunda expresión incluye la hoja de estilos.
 La tercera expresión sirve para usar el título de la página como encabezado.
 la última expresión inserta la vista de la página en el layout mediante una llamada al método
yield.
Hojas de estilo
Las hojas de estilo se guardan en public/stylesheet. Descarga esta la de estilos style.css y cambia
la generada por defecto para la aplicación Emporium.

Formatos múltiples
Una aplicación puede tener múltiples formatos (por ejemplo, uno para las páginas normales y otro
para los pop-up). Puede indicarse a Ruby como manejar un layout específico de muchas formas.
Por ejemplo:

class EternalLifeController < ApplicationController


# Option 1
layout 'default'
# Option 2
layout :determine_layout
def index
# Uses app/views/layouts/default.rhtml
end
def popup
# Uses app/views/layouts/popup.rhtml
# Option 3
render :layout => 'popup'
end
def determine_layout
if params[:id].nil?
return "fancy_layout"
else
return "default"
end
end

35. Ingrese por un browser a la aplicación que acaba de crear y poner a correr, copie el
pantallazo e insértelo en este documento

Explique los fundamentos de la web

El éxito de la web se basa en dos factores fundamentales: el protocolo HTTP y el lenguaje HTML. El
primero permite una implementación sencilla de un sistema de comunicaciones que permite
enviar cualquier fichero de forma fácil, simplificando el funcionamiento del servidor y
posibilitando que servidores poco potentes atiendan cientos o miles de peticiones y reduzcan de
este modo los costes de despliegue. El segundo, el lenguaje HTML, proporciona un mecanismo
sencillo y muy eficiente de creación de páginas enlazadas.

El protocolo HTTP

El protocolo HTTP (Hypertext Tranfer Protocol) es el protocolo principal de la World Wide Web. Es
un protocolo simple, orientado a conexión y sin estado. Está orientado a conexión porque emplea
para su funcionamiento un protocolo de comunicaciones (TCP, o Transport Control Protocol) de
modo conectado, que establece un canal de comunicaciones entre el cliente y el servidor, por el
cual pasan los bytes que constituyen los datos de la transferencia, en contraposición a los
protocolos denominados de datagrama (o no orientados a conexión) que dividen la serie de datos
en pequeños paquetes (o datagramas) antes de enviarlos, pudiendo llegar por diversas vías del
servidor al cliente.
Este protocolo no mantiene estado o, dicho de otro modo, cada transferencia de datos es una
conexión diferente a la anterior, sin relación entre ellas. Por ejemplo, para transferir una página
web debemos enviar el código HTML del texto, por un lado, y las imágenes que la componen por
otro, pues en la especificación inicial 1.0 del protocolo HTTP se abrían y utilizaban tantas
conexiones como componentes tenía la página, trasfiriendo cada componente por conexiones
diferentes .

Existe una variante de HTTP denominada HTTPS (S significa "secure", o "seguro") que utiliza el
protocolo de seguridad SSL (o "Secure Socket Layer") para cifrar y autenticar el tráfico de datos,
muy utilizada por los servidores web orientados al comercio electrónico o por aquellos que
albergan información de tipo personal o confidencial. De forma esquemática, el funcionamiento
de HTTP es como sigue: el cliente establece una conexión TCP con el servidor, hacia el puerto por
defecto para el protocolo HTTP (o el indicado expresamente en la conexión), envía una orden
HTTP de solicitud de un recurso (añadiendo algunas cabeceras con información) y, utilizando la
misma conexión, el servidor responde enviando los datos solicitados y, además, añadiendo
algunas cabeceras con información.

El lenguaje HTML

El otro factor principal del éxito del World Wide Web ha sido el lenguaje HTML ("Hypertext Mark-
up Language", o "Lenguaje de Marcado de Hipertexto"), que es un lenguaje de marcas (se insertan
marcas o etiquetas en el texto) que permite representar de forma rica el contenido y referenciar
otros recursos (por ejemplo, imágenes), o enlaces a otros documentos (que es, precisamente, la
característica más destacada de la web), mostrar formularios para su posterior procesamiento,
etc.

El lenguaje HTML se encuentra en la actualidad en la versión 4.01 y empieza a proporcionar


algunas funcionalidades más avanzadas. Se ha definido una especificación compatible con HTML,
llamada XHTML ("Extensible Hypertext Markup Language" o "Lenguaje Extensible de Marcado de
Hipertexto") que se define a menudo como una versión XML validable de HTML, que proporciona
un "XML Schema" contra el cual es posible validar el documento con el objeto de comprobar si
está bien formado.

37. Defina la estructura de un documento HTML

Un documento HTML está definido por una etiqueta de apertura <HTML> y una etiqueta de
cierre </HTML>. Dentro de este se dividen dos partes fundamentales la cabecera, delimitada por
la etiqueta<HEAD> y el cuerpo, delimitado por la etiqueta <BODY>. Por tanto la estructura de un
documento HTML será:

<HTML>
<HEAD>
Definiciones de la cabecera
</HEAD>
<BODY>
Instrucciones HTML
</BODY>
</HTML>

Ninguno de estos elementos es obligatorio, pudiendo componer documentos HTML que se


muestren sin ningún problema sin incluir estas etiquetas de identificación. Si se utilizan elementos
que forzosamente deban ser incluidos en la cabecera (como la etiqueta de título), no serán
reconocidos correctamente si no se incluyen entre las etiquetas de <HEAD>.

You might also like