Nuestra primera aplicación

Creando un Esqueleto

Uno comienza con su aplicación de Rails creando un esqueleto. Crear un esqueleto es muy facil:

$ rails direcciones
create
create app/apis
create app/controllers
create app/helpers
create app/models
create app/views/layouts
create config/environments
create components
create db
create doc
create lib
create log
create public/images
create public/javascripts
create public/stylesheets
create script
create test/fixtures
create test/functional
create test/mocks/development
create test/mocks/test
create test/unit
....

Facil, no? Ahora veamos lo que creamos. Para esto necesitamos ejecutar un servidor. Rails puede ser configurado con apache y FastCGI. Pero nuestro esqueleto tambien cuenta con un pequeño servidor web. Así que lo ejecutamos:

$ cd direcciones
$ ruby script/server
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2005-12-06 23:27:44] INFO WEBrick 1.3.1
[2005-12-06 23:27:44] INFO ruby 1.8.2 (2004-12-25) [i386-mswin32]
[2005-12-06 23:27:45] INFO WEBrick::HTTPServer#start: pid=3972 port=3000

Note el puerto que el servidor nos ha dedicado, 3000. Este es el puerto que vamos a accesar utilizando nuestro navegador favorito. La direccion es localhost, o 127.0.0.1. Así que en nuestro navegador iremos a http://127.0.0.1:3000/ . Si todo salió bien, veremos una pantalla de felicitaciones con instrucciones para configurar Apache y pasos siguientes.

Felicidades, estas en Rails!

Ahora que tenemos nuestra aplicación de rails lista, podemos comenzar a ver como está compuesta nuestra nueva aplicación.

Tu ambiente

Rails 1.1 tiene un enlace llamado "About your Application's environment" que le permite verificar información acerca del ambiente. Esta información se encuentra en el URL /rails_info/properties.

Anatomía de una Aplicación Rails

Una aplicación rails se encuentra en el subdirectorio app y se compone de los siguientes directorios:

Llamando código

Seguramente querremos que nuestro directorio tenga una pantalla principal. Conceptualmente, llamaremos a esto el módulo principal. Así que lo generamos:

$ ruby script/generate controller principal
exists app/controllers/
exists app/helpers/
create app/views/principal
exists test/functional/
create app/controllers/principal_controller.rb
create test/functional/principal_controller_test.rb
create app/helpers/principal_helper.rb

Ahora puede usted visitar http://127.0.0.1:3000/principal para ver 

Unknown action
No action responded to index

El archivo que fue creado se llama  controllers/principal_controller.rb. Vamos a poner nuestro código ahí:

class PrincipalController < ApplicationController
def index
mensaje = "Hola a todos...<br>"
["Pedro", "Pablo", "Juan"].each do |nombre|
mensaje += "y a "+nombre+" tambien<br>"
end
render :text => mensaje
end
end

Cuando visitamos de nuevo, vemos nuestro resultado:

Hola a todos...
y a Pedro tambien
y a Pablo tambien
y a Juan tambien

Finalmente, queremos que la raíz de esta aplicación sea también nuestro controlador. Así que eliminamos el index.html de bienvenida:

$ rm public/index.html

Si vemos la página de nuevo, ahora dirá:

Routing Error
Recognition failed for "/"

Esto es porque todavía no le hemos dicho a la aplicación que nuestro controlador "por defecto" es el principal. Podemos hacer esto definiendo una "ruta". Así que modificamos la configuración de rutas, en el archivo config/routes.rb:

 map.connect '', :controller => "principal"

Ahora cuando visitamos la página, vemos el resultado de nuestro controlador principal.

Si tiene dudas, puede ver la película.