You are on page 1of 5

Fernando Gaitán

Página principal

Acerca de mí

Libro de visitas

Contacto

Programación web y otra cosas…

Ruby on Rails, parte 3: Ruteo
16 mayo, 2013

Ferchu

Ruby on Rails

Buscar

10 comentarios

Jugar a Prode 555

Continuando con la estructura de Ruby on Rails hoy
aprenderemos a manejar el ruteo. Seguramente habrás notado
la forma con la que trabaja una aplicación de Ruby on Rails
para manejar las rutas. Primero le indicamos el controlador y
luego el método (que tiene el mismo nombre que la vista) de
esta forma:
http://localhost:3000/principal/index

La primera vez que ingresamos a:
http://localhost:3000/

Facebook
Me gusta A 72 personas les gusta esto. Sé el primero
de tus amigos.

(Por defecto hay un mensaje de bienvenida de Ruby on Rails)
Tal vez te preguntaste si hay forma de definir nosotros la página principal de nuestro sitio lo
que los programadores PHP conocemos como index, bueno esto por supuesto es posible.
Primero iremos a la carpeta raíz de nuestro proyecto a la carpeta public y buscamo un
archivo llamado index.html, eliminamos el archivo o le cambiamos el nombre, por ejemplo
yo le pondré index2.html.
Volvemos atrás al directorio raíz y buscamos la carpeta config, adentro debería haber un
archivo llamado routes.rb, lo abrimos con un editor de texto.
Buscamos la línea:
# root :to => 'welcome#index'

El caracter # al principio sirve para comentar líneas, así que simplemente reemplazaremos
esa línea por lo siguiente:
root :to => 'controlador#accion'

En mi caso:
root :to => 'principal#index'

Si ahora ingresamos a la página principal:
http://localhost:3000/

No veremos la página por defecto de Ruby on Rails sino el controlador y la vista que le
definimos.
Pero en Ruby on Rails también podemos definir alias para las urls, osea por ejemplo,
podríamos crear otra acción para el controlador principal llamada indexdos, pero que para
acceder a la misma en lugar de ir a:
http://localhost:3000/principal/indexdos

Acceder con otra url inventada por nosotros, por ejemplo:
http://localhost:3000/indexdos

Para eso iremos al controlador principal y agregaremos un nuevo método, modificando la
clase que ahora está así:

Redes sociales

Brasil 2014
¿Quién será el campeón de Brasil 2014?
Alemania
Argelia
Argentina
Australia
Bélgica
Bosnia y Herzegovina
Brasil
Camerún
Chile
Colombia
Corea del sur
Costa de marfil
Costa Rica
Croacia
Ecuador
España
Estados Unidos
Francia
Ghana
Grecia
Holanda
Honduras
Inglaterra
Irán
Italia
Japón
México
Nigeria
Portugal
Rusia
Suiza

parte 11: Crear un chat con socket.html. Google+ Fernando Gonzalo Gaitán .js.js Noticias Php Ruby on Rails root :to => 'principal#index' Videojuegos match '/indexdos' => 'principal#indexdos' Wordpress Ahora podés ir a tu navegador con esta url: XML http://localhost:3000/indexdos Y verás lo mismo que si vas a: http://localhost:3000/principal/indexdos De esta manera nosotros podemos crear cualquier controlador con sus acciones (métodos y vistas) y definir con el archivo routes. parte 14: Conectar Node.js. Para comprobar que todo ha salido bien primero probemos llamar la acción de la forma tradicional de Ruby on Rails: http://localhost:3000/principal/indexdos (Recordar siempre tener el servidor iniciado) Ahora agregaremos el alias para esa acción.erb.io Introducción a Node.Uruguay class PrincipalController < ApplicationController Vote def index Ver resultados @saludo = "Hola mundo".erb. ahora el controlador principal tiene dos acciones.rb y debajo de la línea que antes descomentamos y definimos como nuestra página principal. parte 13: CRUD con Mongoose Introducción a Node.html. a la misma altura de index. de esta forma: match '/indexdos' => 'principal#indexdos' Ese bloque debería quedar con las dos líneas así: Node. Volvemos al raíz de nuestro proyecto y vamos a config -> routes. end Entradas recientes end Por esto: Laravel. parte 12: Conexión con MongoDB Introducción a Node. por ejemplo: <h1> Soy el indexdos </h1> Ahora. end def indexdos #indexdos. y dentro escribiremos cualquier cosa. abrir ese archivo con un editor y debajo de: El fin de los .js.rb de qué forma queremos que se vean sus urls.js con MySQL Introducción a Node. parte 13: Ajax class PrincipalController < ApplicationController def index @saludo = "Hola mundo".com. a la que llamaremos indexdos. para terminar de agregar esa acción a nuestra página debemos volver a la raíz de nuestro proyecto e ir a config -> routes.rb. osea: Html5 / Css3 Javascript / Ajax Jquery Juegos Laravel Mis textos MongoDB MySQL root :to => 'principal#index' Agregaremos una nueva línea debajo. parte 15: Sesiones en Express Introducción a Angularjs Introducción a Node. algo muy similar a lo que hacemos con .ar gratuitos Prode 555 Introducción a Node.js.htaccess de Apache en PHP. Abriremos con un editor ese último archivo que acabos de crear.js. método de prueba end end Luego entraremos a la carpeta app -> views -> principal y crearemos un nuevo archivo.js. parte 10: Archivos públicos con express get "principal/index" Agregar el nuevo método de la clase principal: get "principal/indexdos" Esto debería quedar así entonces: Categorías Angularjs Express get "principal/index" Fútbol get "principal/indexdos" Html / Css Bien. index e indexdos.

Estoy igual aprendiendo RoR. el mismo nombre que la acción pero eso significa que sea obligatorio. ya que nunca antes había programado en Ruby. parte 2: Modelo Vista Controlador Siguiente: Ruby on Rails. Me quedó claro que el controlador tiene un método y una vista con el mismo nombre. . osea la salida al navegador. Saludos! Carlos Renato 22 julio. sí. vamos avanzando. Saludos! Anterior: Ruby on Rails. te felicito. esto no debe ser siempre así. Saludos. Mis dificultades son con los modelos. yo le puse indexdos. Con respecto a tu comentario. cada controlador tiene acciones para procesar peticiones y debería tener una vista con el mismo nombre para mostrar el resultado de la misma. De casualidad encontré tu blog y ahora estoy leyendo los posts de Ruby on Rails que es lo que me interesa. lo que se muestra. 23 junio. Gracias por las explicaciones. 2013 a las 21:00 Hola Fernando. cómo estás. En el próximo posteo veremos algo de código Ruby para ir familiarizándonos con su sintaxis que por lo menos para mí es algo nuevo. hasta acá todo. Vos podés tener acciones (métodos en el controlador) para otro tipo de cosas que no son necesariamente cargar una vista. Sin embargo. 2013 a las 2:46 Muy bueno hasta el momento. podés tener una acción para recibir una petición ajax que en lugar de cargar una vista va a devolver un json o un xml. Lucía Fernando G. 2013 a las 21:22 Lucía. parte 4: Variables Redes sociables 10 comentarios Lucía 23 junio. Por ejemplo.Ojo. el html. yo puede haber escrito en lugar de: match '/indexdos' => 'principal#indexdos' Esto: match '/saraza' => 'principal#indexdos' Y luego ingresar como: http://localhost:3000/saraza Y sería lo mismo Bueno. Primero que nada gracias a vos por pasar y comentar.

2014 a las 21:38 El alias no funcionó.1. 2013 a las 17:05 Saludos chavalo. .com 17 abril. Fernando G.22 (stable) whatname32@hotmail.0 RVM 1.25.1. end def indexdos @saludo2 = 'Hola mundo dos!'. javier 2 octubre.1 rails 4. pero en el segundo caso para el alias ¿Cómo se debería de colocar ya que la sintaxis que tu me manejas no se parece en mi actual proyecto? Tengo ruby 2. Saludos! whatname32@hotmail. 2013 a las 23:26 Muy buen tutorial gracias Fernando G.Saludos Fernando desde Nicaragua. 2 octubre. me sale esto: Routing error: No route matches [GET] “/indexdos” Tengo dentro de: app/controllers/principal/principal_controller.erb: class PrincipalController < ApplicationController def index @saludo = 'Hola mundo!'.com 17 abril. 2014 a las 21:09 Recién comencé con esto de ROR pero en el routes.rb no me aparece lo siguiente: root :to => ‘welcome#index’ Si no: root ‘welcome#index’ así que para cambiar mi pagina de inicio a mi recién creado controlador puse esto: root ‘principal#index’ y funcionó. gracias a vos por pasarte. 2013 a las 23:28 No. Javi. 22 julio.

rb get ‘principal/index’ get ‘principal/indexdos’ get ‘welcome/index’ root ‘welcome#index’ match ‘/indexdos’ => ‘principal#indexdos’ Creo que no se me pasó nada pero no funciona Mike 17 abril. el código parece estar bien escrito.html. 2014 a las 22:41 Sinceramente no sé. . pero este tutorial fue hecho en versiones viejas de RoR.0 Unported.org/routing.rubyonrails. así que puede ser que algo haya quedado deprecado. Podés chequear el manual: http://guides.end end En app/views/principal/index. 2014 a las 21:39 Sorry edita el nombre por Mike xD Ferchu 17 abril.erb y indexdos.erb con sus respectivos en Config/routes.html Saludos! Desarrollado por Fernandogaitan | Theme by ThemeZee Este web está bajo una Licencia Creative Commons Atribución-NoComercial-CompartirIgual 3.html.