Не уверен на 100%, правильно ли я понял ваш вопрос и используете ли вы Rails, но Deals.all
дайте мне подумать об этом.
Мне пришлось заменить Deals.all на DEALS для тестирования, так как у меня не запущено приложение rails. Поэтому я использовал массив OpenStructs, чтобы подделать результат вашей модели.
# this fakes Deals.all
require 'ostruct'
DEALS = [
# add any more properties the same way as title, separated by comma
OpenStruct.new(title: 123),
OpenStruct.new(title: 456)
]
def games_sales
DEALS.each_with_index do |deal, index|
puts "#{index + 1}. #{deal.title}"
end
puts "What game do you want to see?"
input = gets.strip
game_selection(input.to_i)
end
def game_selection(input)
deal = DEALS.at(input-1)
p deal[:title]
end
def self.find_by_index(input)
all.select do |deal|
deal.index == input
end
end
games_sales
Результат при выборе 1
равен 123
, при выборе 2
вы получите 456
, из-за p deal[:title]
в коде выше.
Я думаю ваш find_by_index должен получить правильный индекс, и в моем примере мне пришлось использовать at(index)
как at(input-1)
, чтобы получить правильный результат.
Я действительно надеюсь, что это как-то поможет, и я предлагаю вам добавить ожидаемый результат к вашему вопросу, если мой ответ вам не поможет.