2011-05-17 10 views
6

El enunciado del problema es Crea una ruta con nombre. Debería generar una ruta como '/ zombies /: name' donde: name es un parámetro y apunta a la acción de índice en ZombiesController. Nombrar la ruta 'cementerio'Rails for Zombies Level 5 Challenge 5

los recursos son Recursos

zombies 
id name graveyard 
1 Ash  Glen Haven Memorial Cemetary 
2 Bob  Chapel Hill Cemetary 
3 Jim  My Fathers Basement 

mi solución es

TwitterForZombies::Application.routes.draw do 
    match ':name' => 'Zombies#index', :as => 'graveyard' 
end 

También probé

TwitterForZombies::Application.routes.draw do 
     match ':name' => 'Zombie#index', :as => 'graveyard' 
    end 

el error que me sale en ambos casos es

Sorry, Try Again 
Did not route to ZombiesController index action with :name parameter 

¿Qué estoy haciendo mal?

Respuesta

8

Prueba esto:

match '/zombies/:name',:to=> 'zombies#index', :as => 'graveyard' 

RailsForZombies::Application.routes.draw do 
    resources :zombie 
    match '/zombies/:name',:to=> 'Zombies#index', :as => 'graveyard' 
end 
+0

Gracias, que debería haber leído la pregunta con más cuidado. – nikhil

8

Prueba este

match '/zombies/:name' => 'zombies#index', :as => 'graveyard' 
1

este trabajo para mí

RailsForZombies::Application.routes.draw do 
    match 'zombies/:name' => 'Zombies#index' , :as => "graveyard" 
    #match ':name' => 'Zombie#index', :as => 'graveyard' 
    #match 'zombies/:name',:to=> 'zombies#index', :as => 'graveyard' 
end 
2

rieles para los zombis se ha actualizado para rieles 4. El partido método tiene desaprobado. Rails ahora requiere especificar a qué verbo HTTP (como obtener) para responder. Para la actualización de Nivel 5 Desafío 5 de rieles para los zombis, esta es una solución posible:

TwitterForZombies::Application.routes.draw do 
    get '/zombies/:name', to: 'zombies#index', :as => 'graveyard' 
end 
+0

Gracias por la actualización. – nikhil