Дайте мне модель под названием 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)