podać, że mam model o nazwie Apple
i ma kontroler ApplesController
, trasy są:Jak zmienić nazwy tras REST w adresie 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"}
chciałbym zachować cały kod to samo, tyle że w adresach URL, w „jabłko” zostanie zastąpiony samochodem". Adres URL: /apples/new
stanie się /cars/new
.
Czy jest jakiś sposób, aby to zrobić, nie dotykając żadnego innego kodu w aplikacji? (Tj wewnętrznie w aplikacji, to wciąż apple
i ApplesController
)
Próbowałem :as
opcję:
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"}
Ale to tylko zmienił "name" z trasy, a nie adres URL (tak new_apple_path
stał new_car_path
, ale new_car_path
nadal wskazuje /apples/new
zamiast /cars/new
)
Tylko dla kompletności, w Railsach 2.3 byłby: 'resources: apples,: as =>" cars "' –
Jestem nowy dla Rails (4), ale jak tylko zmienia pomocników trasy. Wygenerowane adresy URL nie ulegają zmianie. : path => "xxx" zmienia adresy URL – luigi7up