non-RESTful action or nested routes?

I’m creating a simple task management system to learn Rails. I have a
“task” which is part of a “project”, as so:


for project with id 5’s tasks

My task has a concept of being started, completed and updated.

“Updating” maps to the existing RESTful routes provided by Rails.

Started and completing, however, do not (at least not in an obvious
way). I don’t want to overload “update”, nor do I want to modify the
UI to fit “start task” into a form of update.

I can see two options:

1 - create named routes on task for “start” and “complete” (post to
these does the action in question)

2 - create subresources of project for “completed_tasks” and
“started_tasks” (where a post to /projects/5/completed_tasks/78 would
“complete” task #78 of project #5)

Which would be the “least surprising” way to do this, from a Rails


This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs