Let's say I want to create a resources
with adding a couple of custom actions to it, the analogue in rails is:
resources :tasks do member do get :implement end end
Which will return me not only 7 standard routes, but 1 new:
GET /tasks/:id/implement
How can I do it in phoenix?
I want to improve Dogbert
's answer a little bit:
resources "/tasks", TaskController do get "/implement", TaskController, :implement, as: :implement end
The only addition is as: :implement
in the end of the route.
Thus you will get route named task_implement_path
instead of ugly task_task_path
.
You can add a get
inside the do
block of resources
.
resources "/tasks", TaskController do get "/implement", TaskController, :implement end
$ mix phoenix.routes
task_path GET /tasks MyApp.TaskController :index task_path GET /tasks/:id/edit MyApp.TaskController :edit task_path GET /tasks/new MyApp.TaskController :new task_path GET /tasks/:id MyApp.TaskController :show task_path POST /tasks MyApp.TaskController :create task_path PATCH /tasks/:id MyApp.TaskController :update PUT /tasks/:id MyApp.TaskController :update task_path DELETE /tasks/:id MyApp.TaskController :delete task_task_path GET /tasks/:task_id/implement MyApp.TaskController :implement
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With