簡體   English   中英

語法錯誤,意外的輸入結束,需要keyword_end (SyntaxError) Address_book

[英]syntax error, unexpected end-of-input, expecting keyword_end (SyntaxError) Address_book

當我嘗試在命令行上運行我的 ruby​​ address_book 進行測試時,出現此錯誤,我不知道代碼有什么問題。

錯誤

address_bloc.rb:1:in require_relative': >/Users/paul/address_bloc/controllers/menu_controller.rb:125: syntax error, >unexpected end-of-input, expecting keyword_end (SyntaxError) from address_bloc.rb:1:in '

-address_bloc.rb

require_relative 'controllers/menu_controller'


 menu = MenuController.new

 system "clear"
 puts "Welcome to AddressBloc!"
 menu.main_menu

-控制器/menu_controller.rb

require_relative "../models/address_book"

class MenuController

  attr_accessor :address_book

  def initialize
    @address_book = AddressBook.new
  end

  def main_menu
    puts "Main Menu - #{@address_book.entries.count} entries"
    puts "1 - View all entries"
    puts "2 - Create an entry"
    puts "3 - Search for an entry"
    puts "4 - Import entries from a CSV"
    puts "5 - Exit"
    print "Enter your selection: "

    selection = gets.to_i
    case selection
    when 1
      system "clear"
      view_all_entries
      main_menu
    when 2
      system "clear"
      create_entry
      main_menu
    when 3
      system "clear"
      search_entries
      main_menu
    when 4
      system "clear"
      read_csv
      main_menu
    when 5
      puts "Good-bye!"
      exit(0)
    else
      system "clear"
      puts "Sorry, that is not a valid input"
      main_menu
    end
  end

  def view_all_entries
     @address_book.entries.each do |entry|
       system "clear"
       puts entry.to_s

     entry_submenu(entry)
  end
     system "clear"
     puts "End of entries"
   end

   def create_entry

     system "clear"
     puts "New AddressBloc Entry"
     print "Name: "
     name = gets.chomp
     print "Phone number: "
     phone = gets.chomp
     print "Email: "
     email = gets.chomp

     @address_book.add_entry(name, phone, email)

     system "clear"
     puts "New entry created"
   end

   def search_entries
   end

   def read_csv
   end

   def entry_submenu(entry)
     puts "n - next entry"
     puts "d - delete_entry"
     puts "e - edit this entry"
     puts "m - return to main menu"

     selection = gets.chomp

     case selection
     when "n"
     when "d"
     when "e"
     when "m"
       system "clear"
       main_menu
     else
       system "clear"
       puts "#{selcetion} is not a valid input"
       entry_submenu(entry)
     end
  end
end

謝謝你

你的最終end是關閉def entry_submenu(entry)現在你需要一個最終end來關閉class MenuController

像這樣:

require_relative "../models/address_book"

class MenuController
  attr_accessor :address_book

  def initialize
    @address_book = AddressBook.new
  end

  def main_menu
    puts "Main Menu - #{@address_book.entries.count} entries"
    puts "1 - View all entries"
    puts "2 - Create an entry"
    puts "3 - Search for an entry"
    puts "4 - Import entries from a CSV"
    puts "5 - View Entry Number n"
    puts "6 - Exit"
    print "Enter your selection: "

    selection = gets.to_i

    case selection
    when 1
      system "clear"
      view_all_entries
      main_menu
    when 2
      system "clear"
      create_entry
      main_menu
    when 3
      system "clear"
      search_entries
      main_menu
    when 4
      system "clear"
      read_csv
      main_menu
    when 5
      system "clear"
      display_entry_by_n
      main_menu
    when 6
      puts "Good-bye!"
      exit(0)
    else
      system "clear"
      puts "Sorry, that is not a valid input"
      main_menu
    end
  end


  def view_all_entries
    @address_book.entries.each do |entry|
      system "clear"
      puts entry.to_s

      entry_submenu(entry)
    end
    system "clear"
    puts "End of entries"
  end

  def create_entry

    system "clear"
    puts "New AddressBloc Entry"

    print "Name: "
    name = gets.chomp
    print "Phone number: "
    phone = gets.chomp
    print "Email: "
    email = gets.chomp

    @address_book.add_entry(name, phone, email)

    system "clear"
    puts "New entry created"
  end

  def display_entry_by_n
    system "clear"
    puts "Enter the entry number"
    print "Number:"
    selection = get.chomp.to_i
    if selection < @address_book.entries.size
      puts @address_book.entries[selection]
      puts "Press enter to return to main menu"
      gets.chomp
      system "clear"
    else
      puts "#{selection} is not a valid input"
      display_entry_by_n
    end
  end

  def search_entries
  end

  def read_csv
  end

  def entry_submenu(entry)
    puts "n - next entry"
    puts "d - delete_entry"
    puts "e - edit this entry"
    puts "m - return to main menu"

    selection = gets.chomp

    case selection
    when "n"
    when "d"
    when "e"
    when "m"
      system "clear"
      main_menu
    else
      system "clear"
      puts "#{selcetion} is not a valid input"
      entry_submenu(entry)
    end
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM