2012-04-16 9 views
49

मैं सोच रहा था कि अगर कोई जानता है कि Activerecord में "IN" खंड कैसे करें। दुर्भाग्य से, "आईएन" खंड बहुत अधिक गैर-googleable है इसलिए मुझे यहां पोस्ट करना होगा। असल में मैं इस तरह के एक प्रश्न का उत्तर देना चाहता हूं "मुझे उन सभी कॉलेज के छात्रों को दें जो इन डॉर्मिटोरीज़ में हैं जहां छात्रावास आईडी इस सरणी में है [आईडी सरणी]"। मुझे पता है कि एक डॉर्मरीटरी आईडी दिए गए प्रश्न को कैसे लिखना है, लेकिन मुझे नहीं पता कि इसे आईड्स की सरणी दी गई है।खंड में रूबी एक्टिव्रेकॉर्ड

किसी भी मदद की बहुत सराहना की जाती है। मुझे यकीन है कि यह कहीं किसी प्रश्न का पुनर्स्थापना है, इसलिए मैं इसे एक बार उत्तर/बेहतर खोज शब्द मिलने के बाद हटा दूंगा।

उत्तर

105

§2.3.3 Subset Conditions of the Rails Guides से:

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

इस कोड को इस तरह एसक्यूएल उत्पन्न होगा:

आप IN अभिव्यक्ति का उपयोग करते हुए रिकॉर्ड को खोजने के लिए चाहते हैं तो आप की स्थिति हैश के लिए एक सरणी पारित कर सकते हैं

SELECT * FROM clients WHERE (clients.orders_count IN (1,3,5)) 
+0

सही हो सकता है नहीं खाली सरणी के साथ इसकी समस्याओं में आईएनजी। – tokland

संबंधित मुद्दे