y el tutorial demo no anda...


Así es, entre otras cosas lindas que agrega Rails 3 es un mejor sistema de ruteo. Claro que si estás empezado con el tutorial del 2, por ejemplo del libro “Agile Web Develompent with Rails” una de las primeras cosas que no va a  andar es:

rails demo

que de todas formas pasa a ser:

rails new demo

Ok. Hasta ahí es más que razonable, el tema viene después cuando seguís los pasos de crear el controller “Say”, los métodos “hello” y “goodbye”. Simplemente nos aparece:

No route matches "say/hello"


Lo que quiere decir que no hay modo de rutear localhost:3000/say/hello a ningún controller específico, lo cuál se clarifica al ver Routes.rb

¡RoR3 inhabilita el mapeo por omisión para los controladores! El equivalente de Tomcat con el Servlet Invoker. Ahora es necesario indicar la ruta o usar el nuevo sistema de resources.

Para solucionarlo agregamos una ruta específica con sintaxis RoR3:

match 'say/:action' => 'say#:action'


Por último, al ejecutar la página web, en la consola del server vemos claramente:

Started GET "/say/saludo" for 127.0.0.1 at 2010-10-05 12:27:32 -0200
Processing by SayController#saludo as HTML
Rendered say/saludo.rhtml within layouts/application (29.0ms)
Completed 200 OK in 39ms (Views: 39.0ms | ActiveRecord: 0.0ms


Más detalles en EngineYard.