BITÁCORA

Creando un blog en Ruby on Rails

En el equipo estamos maravillados con Ruby on Rails. Ruby on Rails es un framework para desarrollo de sitios web de manera ágil y rápida. Está basado en el paradigma MVC (Model View Controller), que usa un Modelo de abstracción de datos, una Vista que es una forma de mostrar la información, y un Controlador, que ayuda con operaciones como búsquedas en el Modelo. Esta forma de separar el problema permite soluciones limpias y eficientes.

Preparando Ruby on Rails

Hablaremos de un ambiente de desarrollo basado en Ubuntu, de tal forma que vamos a abrir una consola (terminal, gnome-terminal en el caso de Ubuntu), y teclearemos:

$ sudo apt-get install ruby

y después

$ sudo apt-get install rails

Esos dos comandos harán: primero, instalar ruby si es que no está instalado. En el segundo comando, lo que hará es instalar un metapaquete que precisamente contiene las gemas necesarias de Ruby on Rails, y todas las dependencias. En primera instancia vamos a trabajar con bases de datos basados en sqlite, por lo que no necesitaremos instalar nada extra (sqlite está incluido en casi todo sistema operativo, incluido el iphone OS).

Configurando nuestro blog en Ruby on Rails

En la terminal que ya teníamos abierta arriba, hagamos:

$ mkdir dev

$ cd dev

$ rails blog

$ cd blog

Eso creará un directorio dev, entraran en él y ahí crearán la estructura de la aplicación basada en Ruby on Rails, después entraremos en ella.

Dentro de ese subdirectorio, den el comando “ls” para ver los archivos. Encontraran algo como esto:

File/Folder Purpose
README This is a brief instruction manual for your application. Use it to tell others what your application does, how to set it up, and so on.
Rakefile This file contains batch jobs that can be run from the terminal.
app/ Contains the controllers, models, and views for your application. You’ll focus on this folder for the remainder of this guide.
config/ Configure your application’s runtime rules, routes, database, and more.
db/ Shows your current database schema, as well as the database migrations. You’ll learn about migrations shortly.
doc/ In-depth documentation for your application.
lib/ Extended modules for your application (not covered in this guide).
log/ Application log files.
public/ The only folder seen to the world as-is. This is where your images, javascript, stylesheets (CSS), and other static files go.
script/ Scripts provided by Rails to do recurring tasks, such as benchmarking, plugin installation, and starting the console or the web server.
test/ Unit tests, fixtures, and other test apparatus. These are covered in Testing Rails Applications
tmp/ Temporary files
vendor/ A place for third-party code. In a typical Rails application, this includes Ruby Gems, the Rails source code (if you install it into your project) and plugins containing additional prepackaged functionality.

Lo que es precisamente el esqueleto de la aplicación.

Configurando la base de datos.

En Ruby on Rails siempre habrá tres ambientes: de desarrollo, de test y de producción. Vayamos y editemos en el espacio de desarrollo y pongamos algo como esto:

development:

adapter: sqlite3

database: db/development.sqlite3

pool: 5

timeout: 5000

Ahí le indicamos los datos necesarios para que use nuestra base de datos en sqlite. Ruby on Rails tambien soporta bases como mysql o postgresql, pero por ahora trabajaremos con sqlite.

Creemos la base de datos con:

$ rake db:create

Con esto, se crearán los archivos necesarios de sqlite para hacer uso de la base de datos.

Lo más extraordinario de Ruby on Rails es que genera muchísimo código automático. Comencemos con:

$ script/generate controller home index

Eso generara los modelos y vistas necesarios. Edite ahora el archivo

$ emacs -nw app/views/home/index.html.erb

que es el índice de la aplicación. Ponga algo como:

<h1>Hello, Rails!</h1>

o cualquier cambio que le indique que si modificó el archivo y que es su instalación.

Inicie el servidor:

$ script/server

Y vaya a http://localhost:3000 para ver su servidor funcionando. Verá algo como esto:

rails_welcome

Bienvenida de Ruby on Rails

Para ver la página que se modificó basta con ir a la dirección:

http://localhost:3000/home/index

y eso nos mostrará nuestra obra de arte 😀

Configurando el índice de nuestra aplicación

$ rm public/index.html

Después de esto, configuramos en Rails para que vea el índice adecuado. Hay que editar un archivo llamado “config/routes.rb“. Y añadamos esto al final:

map.connect ':controller/:action/:id'

map.connect ':controller/:action/:id.:format'

map.root :controller => "home"

Salva el archivo y reiniciemos el servidor. Ahora, si visitas en:

http://localhost:3000

Verás el índice adecuado 😀  Ahora, crearemos el espacio necesario para las entradas del blog:

$ script/generate scaffold Post name:string title:string content:text

Con ello, crearemos el campo nombre, titulo y contenido del post. Este comando creará modificaciones en la base de datos, llamadas  “migraciones”. También generará vistas para el nuevo contenido. Para terminar de migrar, solo basta con teclear:

$ rake db:migrate

Y ello creará los campos necesarios en la base de datos. Ahora añadamos un link a lo que hicimos nuevo:

Habrá que reiniciar el servidor e ir a http://localhost:3000 y seguir la liga que dice “blog”. Ahí veran lo nuevo que se creó.

<h1>Hello, Rails!</h1>

<%= link_to "My Blog", posts_path %>

La próxima semana platicaremos de extensiones para este blog y otras cosas que podemos hacer con Ruby on Rails.

Imagen: Flickr

$ script/generate controller home index

Acerca de ingenet

El staff de iNGENET siempre busca nuevos contenidos para ti. Queremos escuchar tus dudas y sugerencias porque sabemos que este espacio se verá enriquecido a través de tu participación.

Comments are closed.

IMPORTANTE:
Sí: El usuario podrá preguntar, felicitar, realizar críticas constructivas y/o contribuir con opiniones relevantes en el campo de la ingeniería e infraestructura.
No: Molestar, intimidar o acosar de ninguna manera.Tampoco utilizará el espacio para la promoción de productos o servicios comerciales, así como de cualquier actividad que pueda ser calificada como SPAM.

Para saber más consulta los Términos de Uso de INGENET.