удаление записей из результатов активных записей - PullRequest
0 голосов
/ 11 октября 2019

product_keywords - это массив строк.

gifts - это результат запроса ActiveRecord

По сути, я хочу удалить определенные результаты из gifts (см. if пункт). Если бы gifts был обычным массивом, это было бы довольно просто, но я не хочу терять функциональность ActiveRecord.

gifts.each do | gift |
  if product_keywords.all? { |keyword| gift.product.name.downcase.include? keyword }
    # ?????
  end
end

ETA: я не хочу редактировать базу данных. Я просто хочу удалить определенные записи из объекта результатов.

Ответы [ 2 ]

0 голосов
/ 12 октября 2019

Кажется, это то, что я искал.

gifts = gifts.reject { | gift | !product_keywords.all? { |keyword| gift.product.name.downcase.include? keyword } }

0 голосов
/ 11 октября 2019

Попробуйте с

gifts.reject!{ |gift| !product_keywords.include?(gift.product.name.downcase) }
...