Ruby Build a Todo List Application with Rails 4 Build a Todo List Application with Rails 4 Adding Todo Items

syntax error, unexpected end-of-input, expecting keyword_end

Hi, I am getting syntax error, unexpected end-of-input, expecting keyword_end message like the picture below and I have found nothing was wrong.

Failures:

1) Adding todo items is successful with valid content
   Failure/Error: click_link "List Items"
   SyntaxError:
     /Library/WebServer/Documents/odot/app/controllers/todo_items_controller.rb:27: syntax error, unexpected end-of-input, expecting keyword_end
   # ./spec/features/todo_items/create_spec.rb:9:in `block in visit_todo_list'
   # ./spec/features/todo_items/create_spec.rb:8:in `visit_todo_list'
   # ./spec/features/todo_items/create_spec.rb:14:in `block (2 levels) in <top (required)>'

and this is my todo_items_controller.rb

class TodoItemsController < ApplicationController
  def index
    @todo_list = TodoList.find(params[:todo_list_id])
  end

  def new
        @todo_list = TodoList.find(params[:todo_list_id])
    @todo_item = @todo_list.todo_items.new
  end

  def create
    @todo_list = TodoList.find(params[:todo_list_id])
    @todo_item = @todo_list.todo_items.new(todo_item_params)

    if @todo_item.save
      flash[:success] = "Added todo list item."
      redirect_to todo_list_todo_items_path
    else
        flash[:error] = "There was a problem adding that todo list item."
        render action: :new
  end

  private 
  def todo_item_params
    params[:todo_item].permit(:content)
  end
end

1 Answer

Hey..

I think you need to end your If.. else Statement..

 def create
    @todo_list = TodoList.find(params[:todo_list_id])
    @todo_item = @todo_list.todo_items.new(todo_item_params)

    if @todo_item.save
      flash[:success] = "Added todo list item."
      redirect_to todo_list_todo_items_path
    else
        flash[:error] = "There was a problem adding that todo list item."
        render action: :new
    end #end the If Statement
 end