как мне заставить мое cli-приложение перейти к следующему методу?

#ruby #activerecord #command-line-interface

#ruby #activerecord #интерфейс командной строки

Вопрос:

(используя tty-prompt) Я пытался создавать отдельные методы, чтобы мое приложение могло работать бесперебойно, однако мне удалось только разбить свой код или установить его в бесконечное приглашение..Я застрял, пытаясь настроить activerecord CRUD

Я создал новый метод для каждого приглашения

 def greet
  $prompt = TTY::Prompt.new
  system "clear"

  puts 'Welcome to gig_finder, the best resource for finding your next gig!'
end

def user
  name = $prompt.ask('What is your name?', default: "artist_name")
  system "clear"
  puts "Welcome #{user}!"
end
  

выходные данные будут продолжать запрашивать имя, пока вы не принудительно завершите работу

Комментарии:

1. Можете ли вы включить код, в котором вызываются эти методы?

2. да, методы вызываются в файле run.rb (вызов: приветствие, затем пользователь и т.д.), Для которого требуется среда, а для среды требуются все файлы в каталоге библиотеки

3. не могли бы вы показать run.rb, пожалуйста?

4. endP = true greet user while endP venue_selection endP = book end

5. Поместите свой код run.rb в сам вопрос, пожалуйста. Ваш вопрос должен быть автономным и включать все необходимое, чтобы другие могли воспроизвести вашу проблему.

Ответ №1:

Потому что в вашем user методе вы снова вызываете user метод.

 def user   # <--- user
  name = $prompt.ask('What is your name?', default: "artist_name")
  system "clear"
  puts "Welcome #{user}!"  # <--- calls user
end
  

Это вызывает бесконечный цикл.

Вы, вероятно, имели в виду использовать:

   puts "Welcome #{name}!"