Give that I have a model called Apple
and it has a controller ApplesController
, the routes are:
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"}
I would like to keep all code the same, except that in URLs, the "apple" would be replaced by "car". So, the URL /apples/new
would become /cars/new
.
Is there some way to do this while not touching any other code in the app? (i.e. internally in the app, it's still apple
and ApplesController
)
I tried :as
option:
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"}
But that only changed the "name" of the route, not the URL (so new_apple_path
became new_car_path
, but new_car_path
still points to /apples/new
instead of /cars/new
)