ruby - Customize Rails' Default Resourceful Route Path -
tl;dr
i'd change default behaviour of rails resourceful routing, move create path resources it's post /resources/new rather /resources.
the setup
let's presume resourceful route specified so:
# routes.rb resources :events the actual routes generated are:
$ rake routes prefix verb uri pattern controller#action events /events(.:format) events#index post /events(.:format) events#create new_event /events/new(.:format) events#new edit_event /events/:id/edit(.:format) events#edit event /events/:id(.:format) events#show patch /events/:id(.:format) events#update put /events/:id(.:format) events#update delete /events/:id(.:format) events#destroy n.b. create action triggered post /events path.
now, if want change path, can "manually", on per-resource basis:
# routes.rb # i've placed routes in order, , used `as: "new_event"`, # avoid generating `events_new` path helper. post 'events/new' => 'events#create', as: "new_event" resources :events, except: [:create] here generated routes:
$ rake routes prefix verb uri pattern controller#action new_event post /events/new(.:format) events#create events /events(.:format) events#index /events/new(.:format) events#new edit_event /events/:id/edit(.:format) events#edit event /events/:id(.:format) events#show patch /events/:id(.:format) events#update put /events/:id(.:format) events#update delete /events/:id(.:format) events#destroy great! create action triggered post /events/new path, rather /events path.
every other route/helper behaves before — including /events/new, , new_event path/url helpers.
the question
rather manually overriding every create action, there way change default path used particular action?
failing that, other means use change bunch of resourceful routes, create action moved /new above?
thanks!
Comments
Post a Comment