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