Otras Páginas

Expandir Todo

ajustando_pagina_por_defecto.step

goals {

  message <<-MARKDOWN
  Ahora que la estructura está completa, vamos a hacer que el flujo funcione sin problemas.

  Actualmente cuando vas a <http://localhost:3000> ves el mensaje "Welcome aboard".

  Sería más fácil usar nuestra aplicación si <http://localhost:3000> fuera directamente a la lista de temas.

  En este paso haremos que eso ocurra y aprenderemos un poco acerca de rutas en Rails (Rails routes).
  MARKDOWN
}

steps {

  step "Agrega una ruta raíz" do
    message "Abre el archivo `config/routes.rb` en un editor."

    message "Busca en el archivo **root**, debería estar cerca de la parte superior si estás usando Rails 4."

    message "Descomenta la línea que contiene la instrucción de ejemplo eliminando el `#` delante de él, y cámbialo por `root 'topics#index'`. Cuando hayas terminado la línea debería verse así:"

    source_code :ruby, <<-RUBY
root 'topics#index'
    RUBY

    em do
      message "(Los usuarios de Rails 3.x deben agregar `root to: 'topics#index'` y necesitarán eliminar su archivo `public/index.html`)."
    end
  end

  step "Confirma tus cambios" do
    message "Regresa a <http://localhost:3000/>. Deberías ser llevado automáticamente a la lista de temas."
  end
}

explanation {

 message <<-MARKDOWN
  * `root 'topics#index'` es una ruta de Rails que dice que la dirección 
    por defecto para tu sitio es `topics#index`. `topics#index` es la página
    de la lista de temas (el controlador 'topics' con la acción 'index').
  * Rails routes controla cómo las URLs (direcciones web) coinciden con el código
    en el servidor. Es similar a cómo las direcciones coinciden con las casas 
    y departamentos.
  * El archivo `config/routes.rb` es como un directorio que lista las posibles
    direcciones y cual código va con cuál.
  * `routes.rb` usa algunos atajos por lo que no siempre muestra todas las 
    posibles URLs. Para explorar las URLs a más detalle podemos usar la
    terminal.

  En la terminal escribe `rake routes`. Deberías obtener algo como esto:

  ````
    $ rake routes

        Prefix Verb   URI Pattern                Controller#Action
        topics GET    /topics(.:format)           topics#index
               POST   /topics(.:format)           topics#create
     new_topic GET    /topics/new(.:format)       topics#new
    edit_topic GET    /topics/:id/edit(.:format)  topics#edit
         topic GET    /topics/:id(.:format)       topics#show
               PATCH  /topics/:id(.:format)       topics#update
               PUT    /topics/:id(.:format)       topics#update
               DELETE /topics/:id(.:format)       topics#destroy
          root GET    /                           topics#index
  ````
  Aquí se muestran todas las URLs a las que tu aplicación responde. El código que comienza con dos puntos son variables, por lo que :id es el número identificador del registro. El código en paréntesis es opcional.

  En Rails 4, también puedes obtener esta información en tu sitio en desarrollo. Ve a <a href="http://localhost:3000/rails/info">http://localhost:3000/rails/info</a> y verás algo como esto:

  <img src='img/rails4_rails_info_routing.png'>

  También verás esta tabla en Rails 4 cada vez que intentes acceder a una ruta inválida (prueba <a href="http://localhost:3000/sandwich">http://localhost:3000/sandwich</a>)

### Explorando Rutas (opcional)

  Ahora puedes dar un vistazo a las rutas que están disponibles en tu aplicación.
  Intentemos ver una de las rutas de temas que acabamos de generar.
  Abre tu consola de Rails y escribe:

    $ rails console
    >> app.topics_path
    => "/topics"
    >> app.topics_url
    => "http://www.example.com/topics"

  `app` es un objeto especial que representa toda la aplicación.
  A este objeto puedes pedirle las rutas (tal como acabamos de hacer),
  jugar con sus conexiones a la base de datos, o hacer pseudo peticiones
  web con `get` o `post` (y mucho más).

  MARKDOWN
}

insert 'considerar_lanzar_a_heroku'

next_step "votando_sobre_temas"