Antes que nada, necesitas tener Ruby en el sistema: En Linux y Windows, sigue los pasos que cuentan en la página oficial de Ruby. En Mac OS X Tiger, sigue las instrucciones que da Dan Benjamin en Hivelogic. En Mac OS X Leopard, no hace falta hacer nada, viene con una instalación de serie de Ruby y Ruby on Rails. También necesitarás las RubyGems, que puedes encontrar aquí. Para comprobar que realmente tienes Ruby y RubyGems funcionando, escribe esto en la línea de comandos:
$ ruby -v ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0] $ gem -v 1.1.1 $
Ahora, sólo hace falta escribir
$ gem install rails --include-dependencies
Y tendremos Rails instalado. Vamos a crear nuestra primera aplicación Rails:
$ rails hello_world_rails create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments [...] create log/server.log create log/production.log create log/development.log create log/test.log $ cd hello_world_rails/
El comando rails <nombreaplicacion> en realidad lo único que hace es crear un directorio de nombre “nombreaplicacion” y llenarlo con el esqueleto de una aplicación Rails:
- app: El directorio donde mas lineas escribiremos, ahí es dónde va el código de nuestra aplicación.
- config: Se configura la base de datos, las rutas y parámetros para cada entorno de ejecución (development, test y production)
- db: Es donde tendremos los ficheros de migraciones de la base de datos, y si usas sqlite, también tendrás la base de datos ahí.
- doc: Por defecto está vacío, pero puedes generar ahí la API de Rails, o la API de tu propia aplicación con el comando rake.
- lib: Código Ruby que queramos tener accesible desde cualquier código de nuestra aplicación
- log: …
- public: Directorio que el servidor web servirá, es dónde se encuentra el dispatcher, y el contenido estático (css, imágenes, js, …)
- script: Código de Rails con los scripts que usaremos constantemente para generar más código
- test: Directorio dónde colocaremos el código de nuestros tests para probar la aplicación
- tmp: …
- vendor: Inicialmente vacío, pero ahí es dónde irán a parar los plugins que instalemos, y si queremos, podemos incrustar todo el código de rails para no tener que depender de la versión de rails que haya en nuestra máquina, e incluso, hacerle modificaciones
Ahora vamos a poner en marcha unos instantes esta nueva aplicación dónde aún no hemos escrito ni una línea de código:
$ script/server => Booting Mongrel (use 'script/server webrick' to force WEBrick) => Rails application starting on http://0.0.0.0:3000 => Call with -d to detach => Ctrl-C to shutdown server ** Starting Mongrel listening at 0.0.0.0:3000 ** Starting Rails with development environment... ** Rails loaded. ** Loading any Rails specific GemPlugins ** Signals ready. TERM => stop. USR2 => restart. INT => stop (no restart). ** Rails signals registered. HUP => reload (without restart). It might not work well. ** Mongrel 1.1.4 available at 0.0.0.0:3000 ** Use CTRL-C to stop.
En nuestro navegador favorito, ponemos http://0.0.0.0:3000 y veremos una página de bienvenida que nos da pistas sobre nuestros siguientes pasos. Ya podemos cerrar el servidor (Control-C), y ponernos manos a la obra.
Por defecto, Rails supone que vamos a usar una base de datos sqlite, si queremos forzarlo a usar otra opción (por ejemplo: mysql), tenemos que ejecutar el comando rails <aplicación> -d mysql.
En este articulo sólo pretendo mostrar cómo se pone en marcha una aplicación rails, pero sólo como aperitivo, podemos probar lo siguiente:
$ script/generate scaffold Producto nombre:string descripcion:text precio:integer [...] $ rake db:migrate (in /Users/jordi/rails/hello_world_rails) == 1 CreateProductos: migrating =============================================== -- create_table(:productos) -> 0.0038s == 1 CreateProductos: migrated (0.0040s) ====================================== $ script/server [...]
Y vamos a http://0.0.0.0:3000/productos. Con sólo escribir un comando, hemos generado un controlador (Productos), un modelo (Producto) y unas vistas (páginas html) para manipular productos. Podemos crear, mostrar, editar, borrar y listar productos sin tener que escribir ni una sola línea de Ruby. Con el segundo comando hemos generado la tabla en la base de datos (sqlite, configurada en config/databse.yml) productos, con los campos nombre, descripción y precio.
Hasta aquí la instalación de Rails, a partir de aquí hace falta saber un poco de Ruby y empezar a programar aplicaciones realmente útiles.
Deja un comentario