我有一個Toy和ToyPart ActiveRecord類。玩具has_may玩具部分關係。 ToyPart ActiveRecord有一個描述ToyPart的內容字段和一個簡短描述ToyPart的type_desc字段。基於has_many關係獲取ActiveRecord結果
我需要根據ToyPart的內容和type_desc字段獲取所有玩具記錄。我做了以下聲明以獲得結果:
Toy.all.to_a.toy_parts do {|toy_part| toy_part.where("content like (?) and type_desc='arm'", "%Left arm from%" }
此查詢花費太多時間返回結果。玩具表有270000多條記錄,每個玩具至少有5個玩具部分結果。我不熟悉Ruby和Rails。將所有記錄轉換爲數組我認爲這是一個巨大的過程,並且在循環中進行另一個查詢,成本增加得更多。
to_a不是一個好主意。爲了減輕處理,我可以做些什麼來改善?
P.S:我正在使用rails 4.2.6。
任何具有「%something%」的搜索都會很長。你的代碼中發生的事情是,你實際上一遍又一遍地做這個搜索,使它真的很長。 Atul Khanduri的加入答案意味着您只能創建1個數據庫。 –