मैं निम्नलिखित कोड है:रेल "find_all_by" बनाम ".where"
def maturities
InfoItem.find_all_by_work_order(self.work_order).map(&:maturity)
end
मैं करने के लिए इसे बदलने के बारे में सोच रहा था:
def maturities
InfoItem.where(work_order: self.work_order).map(&:maturity)
end
वहाँ इस के लिए किसी भी लाभ होगा? ऐसा लगता है कि .where
आजकल find_all_by
से अधिक आम है।
मैं रेल से किसी एप्लिकेशन को अपग्रेड करने की प्रक्रिया में हूँ 4.0.3 4.1.0 करने के लिए और मेरे कोड है कि 'इस्तेमाल किया find_all_by' अब काम नहीं करता है ('NoMethodError')। मुझे रिलीज नोट्स में कुछ भी दिखाई नहीं देता है जो इसे प्रभावित करेगा। मुझे 'कहां' पर स्विच करना होगा। अगर मैंने शुरुआत से 'कहां' इस्तेमाल किया था, तो मेरा कोड ऐसी त्रुटियों से कम प्रवण होता। वहां एक टिप्पणी है [http://stackoverflow.com/questions/11232971/rails-find-all-by-vs-where#comment14759921_11233522) यह उल्लेख करते हुए कि 'find_all_by_ *' रेल 4 में बहिष्कृत किया जाएगा। फिर भी, यह आया मुझे आश्चर्य के रूप में। इस विधि को हटाने का दस्तावेज कहां है? – Dennis
मुझे पता चला कि यह कहां दस्तावेज है। 4.1 रिलीज नोट्स में: "सक्रिय निर्भरता-बहिष्कृत_फिंडर्स को एक निर्भरता के रूप में हटाया गया है। कृपया अधिक जानकारी के लिए मणि रीडमे देखें।" – Dennis
मैं इस प्रकार की स्थिति में 'मानचित्र' के बजाय 'प्लक' का उपयोग करने का भी सुझाव दूंगा। 'InfoItem.where (work_order: self.work_order) .pluck (: परिपक्वता)' – jurassic