Dar que tengo un modelo llamado Apple
y tiene un controlador ApplesController
, las rutas son:¿Cómo cambiar el nombre de las rutas REST en la URL?
resources :apples
apples GET /apples (.:format) {:controller=>"apples ", :action=>"index"}
new_apple GET /apples /new(.:format) {:controller=>"apples ", :action=>"new"}
edit_apple GET /apples /:id/edit(.:format) {:controller=>"apples ", :action=>"edit"}
me gustaría mantener todo el código de la misma, excepto que en las URL, la "manzana" sería reemplazado por "coche". Entonces, la URL /apples/new
se convertiría en /cars/new
.
¿Hay alguna manera de hacer esto sin tocar ningún otro código en la aplicación? (Es decir, internamente en la aplicación, sigue siendo apple
y ApplesController
)
Probé :as
opción:
resources :apples, :as => "cars"
cars GET /apples (.:format) {:controller=>"apples ", :action=>"index"}
new_car GET /apples /new(.:format) {:controller=>"apples ", :action=>"new"}
edit_car GET /apples /:id/edit(.:format) {:controller=>"apples ", :action=>"edit"}
Pero eso sólo cambió el "nombre" de la ruta, no la URL (por lo new_apple_path
convirtió new_car_path
, pero new_car_path
todavía señala /apples/new
en lugar de /cars/new
)
Para completar, en Rails 2.3 habría sido: 'resources: apples,: as =>" cars "' –
Soy nuevo en Rails (4), pero como solo cambia la ruta ayuda. Las URL generadas no cambian. : path => "xxx" cambia las URL – luigi7up