Я пытаюсь избежать лишних обращений к БД / запросов на моем сайте rails.Учитывая массив URL-адресов, мне нужно знать, был ли соответствующий веб-сайт уже создан в моей базе данных или нет, чтобы я мог создать его при необходимости.
1) Первый метод выбирает все URL-адреса измассив, а затем запрашивает этот меньший набор, чтобы определить, был ли создан данный URL
urls = ["https://www.google.com/", ... "https://stackoverflow.com"]
my_sites = Website.where url: urls
urls.each_with_index do |url, i|
this_site = my_sites.find_by url: url
if this_site == nil
#do stuff
end
end
2) Второй метод выбирает каждый сайт из записи индивидуально
urls = ["https://www.google.com/", ... "https://stackoverflow.com"]
urls.each_with_index do |url, i|
this_site = Website.find_by url: url
if this_site == nil
#do stuff
end
end
3) Другой способ?Мне кажется, что ни один из них не слишком эффективен, они оба открывают множество соединений с БД.