Дайте мне модель под названием Apple
и у нее есть контроллер ApplesController
, маршруты:
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"}
Я хотел бы сохранить весь код одинаковым, за исключением того, что в URL-адресах "яблоко" будет заменено на "автомобиль". Таким образом, URL /apples/new
станет /cars/new
.
Есть ли способ сделать это, не касаясь какого-либо другого кода в приложении? (т.е. внутри приложения, он все еще Apple
и ApplesController
)
Я попробовал вариант :as
:
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"}
Но это изменило только "имя" маршрута, а не URL (поэтому new_apple_path
стал new_car_path
, но new_car_path
по-прежнему указывает на /apples/new
вместо /cars/new
)