Ruby on Rails
Para usuarios de Windows
En Windows podemos echar mano de Instant Rails (http://instantrails.rubyforge.org/wiki/wiki.pl) , que contiene Ruby, Rails, Apache y Mysql, todo preconfigurado y listo para usar. Tendrás que descargar un fichero zip, descomprimirlo en un directorio, y en dicho directorio ejecutar InstantRails.exe.
Instant Rails detectará preguntará si quieres
actualizar las rutas en todos los ficheros de configuración...pulsa sobre el si.Para una instalación manual debemos descargarnos cada uno de los módulos:
Los archivos deberán ser descargados en un sólo directorio y los comandos ejecutados en ese directorio.
gem install rake-0.7.1.gem
gem install activesupport-1.3.1
gem install activerecord-1.14.4.gem
gem install actionpack-1.12.5.gem
gem install actionmailer-1.2.5.gem
gem install actionwebservice-1.1.6.gem
gem install rails-1.1.6.gem
Muy bien hasta aquí ya debemos tener instalado
Ruby y Rails satisfactoriamente.
Ahora que menos que escribir un clásico con Rails, cómo escribir hola mundo en nuestro
navegador con Rails.En primer lugar tendremos que crear nuestro proyecto rails con
rails MiProyecto
este comando crea toda la estructura de ficheros
y directorios necesarios.
Ahora para comprobar que nuestra instalación
es correcta ponemos en marcha el servidor web que viene con Ruby, Webrick, en la línea de comandos, desde dentro del directorio
del proyecto que acabamos de crear, escribimos:
ruby script/server
y si todo ha ido bien, accediendo a http://localhost:3000 veremos una pagina de bienvenida
de Rails.
De momento nuestra aplicación no hace nada, así que vamos a crear un controlador con
ruby script/server
Creamos un controlador
ruby script/generate controller test
Verás que se crean una serie de directorios y ficheros, entre ellos tienes que encontrar
directorio_trabajo_rails/ejemplo/app/controllers/test_controller.rb.
Al controlador vamos a agregar un método
index:
class TestController < ActionController::Base
def index
end
end
Una vez hecho esto, crearemos la vista para esta acción que acabamos de crear, en directorio_
trabajo_rails/ejemplo/app/views/test crea un archivo llamado index.rhtml y dentro escribimos el texto Mundo Hola desde RoR!, lo grabas y si accedes desde el navegador a http://localhost:3000/test/ verás tu primera incursión en Rails.
Digamos que te controlador test es el controlador
principal de tu aplicación, lo ideal es que los usuarios entren a tu página a través de simplemente escribiendo tudominio.com, y no teniendo que escribir tudominio.com/test , para lograr esto editemos
directorio_trabajo_rails/ejemplo/config/routes.rb:
descomentamos
la línea
# map.connect '', :controller => "welcome"
quedaría así:
map.connect '', :controller => "test":
Y como nos indican unas líneas arriba, debemos
borrar el archivo directorio_trabajo_rails/ejemplo/public/index.html y ahora si se podría acceder a través de http://localhost:3000/.
Lo más común es hacer aplicaciones que accedan a una base de datos y hagan operaciones
(insertar, actualizar, borrar) en la misma.
Una forma sencilla de hacer esto es con lo que en rails se denomina scaffolding.Primero creamos en la base de datos una tabla que se llame recetas, por ejemplo, si queremos hacer una base de datos de recetas. Configuramos el acceso desde rails en el fichero
database/config.yml y ahora tenemos dos opciones, crear el modelo y el controlador Receta:
ruby script/generate model Receta
ruby script/generate controller Receta
y en el fichero del controlador poner:
class RecetaController < ActionController::Base
scaffold :receta
end
De esta forma se generan dinámicamente todos los métodos necesarios para añadir, modificar y borrar recetas en nuestra base de datos. Esta forma puede servir para aplicaciones muy sencillas
en las que no necesitemos nada más.
Otra opción es usar un generador que crea todos los ficheros con el código de la opción anterior:
ruby script/generate scaffold Receta
De esta forma podemos tomar este código como
base y modificarlo para adaptarlo a nuestra
aplicación.
Hasta ahora, estamos viendo que en Rails la mayor parte de las cosas son ventajas, facilidades,
sencillez, simplicidad, elegancia, pero también nos encontramos ante ciertos peros, que son los que en muchas ocasiones frenan a los desarrolladores a usar Rails, veamos si realmente son “peros” consistentes.
Rendimiento y escalabilidad
Generalmente uno de los problemas que se asocian a Rails es el rendimiento y la escalabilidad,
por un lado, se dice porque Ruby es lento o en genérico los lenguajes interpretados son lentos.
Ante eso, encontramos como respuesta en el blog de DHH, www.loudthinking.com, algo que es parte de la propia filosofía de Rails, no se busca un lenguaje o entorno de programación que sirva para todas las situaciones,
no hay que reinventar la rueda, sino saber en qué momento qué herramientas hay que usar, Rails está orientado a desarrollo web, si en algún momento la aplicación tiene un cuello de botella, quizá la forma de evitarlo
sea usando otro lenguaje (C, C++, Java) que haga determinada tarea de forma óptima, puede que parezca hacer trampa, pero es una forma que casos específicos en los que el rendimiento pueda ser peor no determinan el desarrollo general de una aplicación web.
Performance
Definitivamente, una debilidad de Ruby poco
conocida (o poco publicitada), es su baja performance en velocidades de ejecución. Los benchmarks en diversos equipos y con distintas rutinas señalan a Ruby como un lenguaje
lento, en comparación con PHP4, y más lento aun en comparación a PHP5. Como contrapartida, posee una excelente gestión de memoria, superior a las 2 versiones de PHP en el mercado actual.
Comparando Rails con PHP
Cuando aparece alguna novedad siempre hay tendencia a hacer comparaciones, cuando
en muchos casos tampoco tiene mucho sentido hacerlas.
En el caso de establecer una comparación entre PHP y RoR, se parte de un error de base, no son comparables, ¿podríamos hacer una comparación entre peras y manzanas? ¿Por qué se genera esta falsa comparación? PHP es un lenguaje de script, extremadamente
liberal, no lo ata con ninguna tecnología extra y su forma de uso está más basado en la programación estructurada, influencia del lenguaje C. Sin embargo RoR es un entorno de programación basado en Ruby, siendo Ruby un lenguaje orientado a objetos 100%.La mejora del modelo de OOP en PHP5 ha traído aparejado el surgimiento de un número importante de entornos de programación
(Cake, PRADO, Symfony, etc.) que se van agregando al lote del Zend Framework, aunque ninguno logra imponerse fuertemente
sobre el resto.
Amazon apuesta por Rails en su sitio unspun.amazon.org
Por otro lado, el concepto de Rails como Framework MVC + ActiveRecord, ideal para el desarrollo ágil de sitios Web 2.0, seguramente
no es la panacea universal ni la solución
definitiva, ya que podemos encontrar otras posibles soluciones en otros lenguajes:
• Cake (PHP). Anteriormente citado,
• Django (Python),
• Trails (Java).
Estos funcionan tan bien o inclusive mejor que RoR, dependiendo del sistema con el que estamos lidiando.
Siguiente
Páginas: 1 2 3 4 5
|