У меня есть массив, содержащий пути URL, я хочу, чтобы иметь возможность искать в моей базе данных в таблице, где одно из полей (помечено как «URL») для URL-адресов, указанных в массиве.Отфильтровать результаты базы данных с помощью WHERE
Итак, у меня есть упрощенная версия того, чего я хочу достичь.
urls = ["url1", "url2", "url3", "url4", ... ]
urlsInDB = []
results = Link.all
urls.each() do |url|
if not results.where(:url=>url).blank?
urlsInDB << url
end
end
Однако я знаю, что вы не можете назвать «.где» на множестве результатов, полученных с помощью «.all». Я хочу сделать это таким образом, чтобы база данных только когда запрашивается один раз не для каждого URL в URLS как это может иметь длину п и что потребует п запросов.
Любые идеи?
Это было бы лучше с новым Rails 'pluck' метода. Загрузка всей модели и извлечение одного значения крайне неэффективны. – tadman
Зачем был принят этот ответ, когда был более эффективный и современный? – weexpectedTHIS