我有一個包含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
不過,我知道,你可以不叫「凡」上一組「所有」得到的結果。我想這樣做,這種方式使數據庫永遠只能查詢一次不是針對每個URL在網址,因爲這可以有長度ñ這將需要ň查詢。
任何想法?
這將與新的Rails'pluck'方法得到更好的服務更好。加載整個模型並提取單個值的效率極低。 – tadman
爲什麼這個答案會被接受,而更有效的和最新的提供? – weexpectedTHIS