collected_cards.each do |card|
ac = Card.find_by('name like ?', "#{card}")
if ac.nil?
next
else
confirmed_cards << ac
end
end
Я анализирую массив строк.Для каждой строки я пытаюсь собрать имя из моего postgres ac = Card.find_by('name like ?', "#{card}")
Проблема в том, что объект AC не воспринимается Ruby / Rails как массив или даже хеш, что приводит меня к этой ошибкекогда я пытаюсь отобразить его в моем представлении:
undefined method `each' for #<Card:0x007f9368494a50>
Вот небольшой фрагмент кода представления:
<% @cardset.each do |cardset| %>
<% cardset.each do |collection| %> # I get an error here
<h1>Cards matching <%= collection.first[:name] %></h1>
<% collection.each do |card| %>
<%= image_tag "#{card[:image]}" %>
<%= card[:name] %>
cardset
должен быть массивом массивов хешей, которые яитерация (контекст)
Спасибо!
Редактировать: Метод в моем контроллере, отвечающий за это представление:
def cards
@collection = params[:imgur_link]
unique_path = @collection.gsub("https://imgur.com/a/", "")
@imgur = ImgurService.new(unique_path).call
@ocr = OcrService.new(@imgur).call
@cardset = CardsService.new(@ocr).call
end
CardService:
def initialize(ocrservice)
@cards_from_ocr = ocrservice
end
def call
match_ocr_with_ac
# display_max_price
end
def match_ocr_with_ac
confirmed_cards = []
collected_cards = @cards_from_ocr
collected_cards.each do |card|
ac = Card.find_by('name like ?', "#{card}")
if ac.nil?
next
else
confirmed_cards << ac
end
end
confirmed_cards
end