class TaskItemsController < ApplicationController before_action :ensure_valid_user before_action :set_task_list before_action :set_task_item, only: [:update, :destroy] def create @task_item = TaskItem.new(task_item_params) @task_item.task_list = @task_list if @task_item.save render :show, status: :created, location: @task_item else render json: @task_item.errors, status: :unprocessable_entity end end def update if @task_item.update(task_item_params) render :show, status: :ok, location: @task_item else render json: @task_item.errors, status: :unprocessable_entity end end def destroy @task_item.destroy head :no_content end private def task_item_params params.require(:task_item).permit(:name, :quantity) end def set_task_list @task_list = TaskList.find(params[:task_list_id]) ensure_owner(@task_list) end def set_task_item @task_item = @task_list.task_items.find(params[:id]) end end