2012-01-15 13 views
25

उदाहरण मेरे पास है:रेल कॉलम कैसे करें?

@test = Pakke.find([[4], [5]]) 

मेरी Pakke तालिका में मैं नाम का एक स्तंभ है prismd

मैं कैसे @test के लिए prismd स्तंभों के लिए दो मानों का योग करते हैं?

Pakke.sum(:prismd, :conditions => {:id => [4,5]}) 

:

@test = Pakke.where(:id => [4, 5]).sum(:prismd) 
+0

आपको निश्चित रूप से अपने सरणी में कुछ आदेश देना चाहिए। यह बहुत भ्रमित है कि आप वास्तव में क्या करने की कोशिश कर रहे हैं और ऐसा करने की कोशिश कर रहे हैं जब तक यह प्रतीत होता है कि ऐसा करने का सबसे अच्छा तरीका नहीं है। इसके बजाय यह सोचने का प्रयास करें कि आप वास्तव में क्या हासिल करना चाहते हैं और तदनुसार अपनी डेटा संरचना व्यवस्थित करना चाहते हैं। 5 या उससे अधिक प्रश्नों पर आपकी वास्तविक समस्या को भी विभाजित करने से बहुत मदद नहीं मिलेगी .... –

+0

मैं कोशिश करूंगा। यह थोड़ा जटिल है कि मैं ऐसा करने की कोशिश कर रहा हूं। बस मुझे पता है कि मैं मुख्य रूप से इसे काम करना चाहता हूं क्योंकि इसमें सही समाधान खोजने में काफी समय लगा है। –

उत्तर

42

आप इस तरह संबंधित एसक्यूएल बनाने के द्वारा डेटाबेस पर सीधे संक्षेप में प्रस्तुत कर सकते हैं:

1
Pakke.find([[14], [15]]).map(&:prismd).sum 
23

ActiveRecord में निर्मित गणना के तरीकों, sum सहित का एक समूह है अधिक उपयोग उदाहरणों और सामान्य दस्तावेज़ीकरण के लिए ActiveRecord::Calculations देखें।

+3

एफवाईआई, ** ** ** .sum (&: prismd) 'का उपयोग न करें। यह रूबी के माध्यम से गणना को पूरा करेगा। @ जोर्डन का कहना है कि एसक्यूएल के माध्यम से गणना पूरी हो जाएगी और ** ** ** ** ** बहुत ** तेज है। –

1

परीक्षण = आदेश। कहीं (संभावित_student_id: capacity_student.id) .sum ("total_price");

+4

क्या आप थोड़ा और समझा सकते हैं? –

+0

Pakke.where (आईडी: [4,5])। योग ("प्रिज्म") – KevinLi

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