В настоящее время я работаю над проектом с моделью has_many_through. Моя объединенная таблица / класс называется "Потребление", а две соединенные модели - "Алкогольный напиток" и "Потребитель". Сейчас я работаю над командной строкой (я завершил миграции) и не понимаю, как добавлять записи в Consumer. Ранее я создал нового потребителя в командной строке.
def create_user
new_user=Consumer.create(name: @name,sex: @sex, weight: @weight)
puts "Welcome #{new_user.name}!"
end
Теперь я хочу иметь возможность добавлять каждый напиток (при условии, что он проверяется методом drink_valid?) В свой экземпляр Consumer. Я не уверен, как это сделать в созданном мною l oop. Я полагаю, что должен присоединиться к экземпляру Consumer to the Alcoholi c Beverage через Intake.create, но я не знаю, где именно воспроизвести этот экземпляр. Я хочу, чтобы у потребителя была возможность выбрать напиток (проверить его), а затем предоставить ему возможность выпить еще один напиток. Если они решат не использовать l oop, не нужно добавлять больше экземпляров. Если они решат выпивать снова и снова, этот экземпляр следует добавить в Consumer, чтобы я мог вызвать Consumer.alcoholic_beverages и получить список всех напитков, которые они выпили. Любая помощь будет оценена по достоинству, так как я очень смущен.
def display
ingredients=RestClient.get("https://raw.githubusercontent.com/teijo/iba-cocktails/master/recipes.json")
@ingredients_data=JSON.parse(ingredients)
@ingredients_data.collect do |x,y|
@cocktails = x["name"]
puts @cocktails
# sleep(0.1)
end
sleep(0.1)
puts "So, what's your poison?" "\n"
end
def drink_valid?
@chosen_cocktail=gets.chomp.titleize
if AlcoholicBeverage.find_by(cocktail_name: @chosen_cocktail)
puts "Mhm good choice!"
else
until AlcoholicBeverage.find_by(cocktail_name: @chosen_cocktail)
loop do
puts "Sorry please choose something on the list!"
@chosen_cocktail=gets.chomp.titleize
break
end
end
# new_intake= Intake.create
# new_user << new_intake
end
end
def details
puts "Now that you've chosen your cocktail, I'll provide you with details on the necessary ingredients,glass and garnishes!"
glass_type = AlcoholicBeverage.where(cocktail_name: @chosen_cocktail).map(&:glass)
puts "Required : #{glass_type.join.titleize} glass."
garnish = AlcoholicBeverage.where(cocktail_name: @chosen_cocktail).map(&:garnish)
if garnish.join.titleize == ""
puts "No garnish needed!"
else
puts "Required garnish: #{garnish.join.titleize}"
end
preparation = AlcoholicBeverage.where(cocktail_name: @chosen_cocktail).pluck("preparation")
puts "To prepare : #{preparation.join}"
loop do
ask
break if @new_drink == "no" || "No"
end
end
def ask
puts "Would you like another drink (yes/no)?"
new_drink=gets.chomp.strip.titleize
if new_drink == "Yes" || new_drink == "yes"
display
drink_valid?
details
else
puts "I'll give your blood alcohol content level based on the drink you've had."
end
end