Para comenzar, vamos a mostrar algo de texto en la pantalla rápidamente. Para hacer ésto, necesitas tener tu servidor de aplicación Rails corriendo.
Iniciando el Servidor Web
En realidad ya tienes una aplicación Rails funcional, Para verla, necesitas iniciar un servidor web en tu máquina de desarrollo. Puedes hacerlo ejecutando:
$ rails server Esto lanzará WEBrick, un servidor web incorporado en Ruby por defecto. Para ver tu aplicación en acción, abre tu navegador preferido y accede a http://localhost:3000. Deberías ver la página de información por defecto de Rails.
La página «Welcome Aboard» es la primera prueba para una nueva aplicación Rails: Ésta asegura que tienes el software configurado correctamente para servir una página. También puedes hacer click en el link About your application’s enviroment para ver un resumen del entorno de tu aplicación.
Hola Mundo
Para conseguir que Rails diga «Hola», necesitas crear como mínimo un controlador y una vista.
El propósito de un controlador es recibir las peticiones (requests) de la aplicación. El enrutamiento (routing) decide qué controlador recibe qué petición.
A menudo, hay más de una ruta para cada controlador, y diferentes rutas pueden ser servidas por diferentes acciones (actions). El propósito de cada acción es obtener información para pasarla después a la vista.
El propósito de una vista es mostrar la información en un formato legible para los humanos. Una distinción importante que hacer es que es el controlador, y no la vista, donde la información es recolectada. La vista sólo debería mostrar la información. Por defecto, las plantillas de las vistas están escritas en un lenguaje llamado ERB (del inglés, Embedded Ruby), que se procesa automáticamente para cada petición servida por Rails.
Para crear un nuevo controlador, necesitas ejecutar el generador de controladores y decirle que quieres un controlador llamado por ejemplo welcome
con una acción llamada index
. Para ello, ejecuta lo siguiente:
$ rails generate controller welcome index
Rails creará una serie de archivos y añadirá una ruta por ti.
create app/controllers/welcome_controller.rb route get "welcome/index" invoke erb create app/views/welcome create app/views/welcome/index.html.erb invoke test_unit create test/functional/welcome_controller_test.rb invoke helper create app/helpers/welcome_helper.rb invoke test_unit create test/unit/helpers/welcome_helper_test.rb invoke assets invoke coffee create app/assets/javascripts/welcome.js.coffee invoke scss create app/assets/stylesheets/welcome.css.scss
Los archivos más importantes de éstos son por supuesto el controlador, que se encuentra enapp/controllers/welcome_controller.rb
y la vista, que se encuentra enapp/views/welcome/index.html.erb
.
Abre el archivo app/views/welcome/index.html.erb
en tu editor de texto y edítalo para que contenga sólo está línea de código:
<h1>Hello, Rails!</h1>
Estableciendo la página principal
Ahora que hemos hecho el controlador y la vista, necesitamos decirle a Rails cuándo queremos que se muestre Hello Rails
. En nuestro caso, deseamos mostrarlo al acceder a la portada de nuestro sitio, http://localhost:3000. Por el momento, sin embargo, la página «Welcome Aboard» está ocupando ese lugar.
Para arreglarlo, borra el archivo index.html
ubicado dentro de la carpeta public
de la aplicación.
Necesitas hacer ésto debido a que Rails servirá preferentemente cualquier archivo estático en la carpeta public
que coincida con una ruta de la aplicación.
El archivo index.html
es especial, ya que se sirve si llega una petición a la ruta raíz de la aplicación (en http://localhost:3000
). Si haces otra petición (por ejemplo http://localhost:3000/welcome
), se serviría el archivo estático public/welcome.html
, pero sólo si existiera.
A continuación, tienes que indicarle a Rails donde está ubicada tu página principal. Para ello, abre el archivo config/routes
en tu editor:
Blog::Application.routes.draw do get "welcome/index" # The priority is based upon order of creation: # first created -> highest priority. # ... # You can have the root of your site routed with "root" # just remember to delete public/index.html. # root :to => "welcome#index"
Éste es el archivo de enrutamiento de tu aplicación, que mantiene entradas con un DSL especial (domain-specific language) que le dicen a Rails cómo conectar peticiones entrantes a controladores yacciones.
Este archivo contiene muchas rutas de ejemplo en líneas comentadas, y una de ellas en realidad muestra como conectar la raíz de tu sitio a un controlador y acción específicos. Encuentra la línea iniciando con root :to
y descoméntala. Debería verse como lo siguiente:
root :to => "welcome#index"
El root :to => "welcome#index"
le indica a Rails que debe asociar las peticiones de la raíz de la aplicación a la acción index
del controlador welcome
y get "welcome/index"
le indica a Rails que asocie peticiones de http://localhost:3000/welcome/index a la acción index
del controlador welcome
. Este fue creado al inicio cuando ejecutaste el generador del controlador (rails generate controller welcome index
).
Si accedes a la dirección http://localhost:3000 en tu navegador, verás el mensaje Hello, Rails!
que colocaste dentro de la vista app/views/welcome/index.html.erb
, indicando que esta nueva ruta está en realidad pasando a la acción index
del controlador Welcome
y está renderizando la vista correctamente.