2015-03-10 9 views
31

मैंActiveRecord जहां फ़ील्ड =? संभावित मान

Model.where('id = ?', [array of values]) 

मैं कैसे पूरा करते हैं इस एक साथ चेन या कथन के बिना ऊपर देखो क्या करना चाहते हैं की सरणी?

+0

संभावित रेल डुप्लिकेट [रेल 3/रूबी: ActiveRecord पैरामीटर एकल कोट समस्या के लिए एरे में स्थिति खोजें] (http: // stackoverflow। कॉम/प्रश्न/69 9 40 9 5/रेल-3-रूबी-एक्टिवॉर्ड-खोज-विधि-इन-कंडीशन-एरे-टू-पैरामीटर-सिंगल) –

उत्तर

73

here से यह एक SQL in कथन का उपयोग किया जाना प्रतीत होता है:

या अधिक बस, के रूप में kdeisz ने बताया (SQL क्वेरी बनाने के लिए अरेल का उपयोग करते हुए):

Model.where(id: [array of values]) 
+3

इसे 'मॉडल' कहीं भी सरलीकृत किया जा सकता है (आईडी: [मानों की सरणी]) ' – kddeisz

+0

मॉडल। कहीं ("आईडी (?)", [1..8]) मेरे लिए काम नहीं कर रहा है। कोई विचार? – BKSpurgeon

+0

आपको स्क्वायर ब्रैकेट की आवश्यकता नहीं है, '1..8' पहले से ही सरणी की तरह है। – javanut13

11

से ActiveRecord Query Interface guide

यदि आप आईएन एक्सप्रेसियो का उपयोग कर रिकॉर्ड ढूंढना चाहते हैं n क्या आप शर्तों हैश को एक सरणी पारित कर सकते हैं:

Client.where(orders_count: [1,3,5]) 
3

पठनीयता के लिए, यह आगे भी करने के लिए सरल किया जा सकता,:

Model.find_by(id: [array of values]) 

यह where का उपयोग करने पर है, लेकिन अधिक स्पष्ट है:

Model.where(id: [array of values]) 
संबंधित मुद्दे