Let's build a Task List in Rails! We will solve the problem of tracking tasks in a web application. This project will enable us to keep track of and persist, add, edit and remove tasks. This is an individual Stage 1 project.
Practice all aspects of Rails development.
- Create a new Rails application
- Explore each aspect of the Rails Request Cycle: Model, View, Controller
- Implement RESTful routes using Rails standards
- Complete all CRUD actions in a Rails application
In this baseline, you'll create a new Rails application and get started with two of the major components: route, controller and view.
- Fork and clone this repository to your computer
- Create a new Rails application using
rails new .
- create a
Tasks
controller - create a route to view the task
index
page - create a controller action for the task
index
page which contains an array of hard-coded tasks - create an ERB view to display the tasks from the controller action
- create a
This wave is where we introduce ActiveRecord to create a model. We use the model to persist our data.
- create a migration which will create a new
Task
model- create the database schema and tables by running the
rails db:migrate
command - the
Task
model should include at least a name, a description and a completion date - create at least 2
Task
model instances using therails console
- create the database schema and tables by running the
- update the controller's
index
action you created to retrieve and showall
Task objects from the database- you may need to update the view as well to use the model fields rather than the hard-coded data
In this wave, we will expand the actions we support and introduce forms for user interactivity and persistence.
- add support to
show
each task- update the task list to link to a
show
action for each individual task - create a route
- create a controller action
- create an ERB view
- update the task list to link to a
- Create a new task:
- update the task list to have a link to add a new task
- this will give the user a new page with a form with the appropriate task fields
- the site should take the user back to the task list after the new task is added
- update the task list to have a link to add a new task
In this wave we will extend the interactivity with users, allowing them to edit existing tasks.
- Edit a task
- update each task's show page to include an edit link
- this will give the user a new page with a form that is pre-populated with the data about that task
- the site should take the user back to the task's show page after the task is updated
- update each task's show page to include an edit link
In this wave, we will add the ability to delete tasks. We will also add the ability for a user to mark a task complete.
- Delete a task
On the task list, add a button or link for each task that will, once clicked:- Ask the user to confirm that they definitely want to delete the task.
- Delete the task from the database and redirect the user back to the list of remaining tasks
- Mark a task complete
- Add a button to the list of tasks on the home page that, when clicked, will mark a task complete
- Update the database with the task's completed date
- Optional
- DRY up your code by reusing the view code from the
new
functionality- Hint: Rendering partials in Rails