2012-10-25 17 views
11

मेरे पास मेरे डेटाबेस में ads_counter नामक फ़ील्ड है, और मुझे इस विज्ञापन को प्रस्तुत होने पर हर बार अपना मूल्य बढ़ाने की आवश्यकता है।डेटाबेस में बढ़ते काउंटर

मैंने एक कस्टम विधि लिखने की कोशिश की और इसे इस डेटा के लिए जिम्मेदार नियंत्रक में उपयोग किया, लेकिन यह काम नहीं किया। क्या डेटाबेस में किसी फ़ील्ड के मान को बढ़ाने के लिए कोई अंतर्निहित विधियां हैं?

+0

प्रदान की संख्या से वृद्धि कर देता है कि आप अपने संरचना को साझा करते हैं हम और अधिक जानकारी के साथ मदद मिल सकती है! धन्यवाद! – felipeclopes

+0

अद्यतन_attributes का उपयोग करके पहले से ही एक और तरीका मिला है। – Avdept

+0

धन्यवाद करने का सबसे अच्छा तरीका update_attributes कॉल सत्यापन और सामान के बाद वृद्धि को कॉल कर रहा है। वृद्धि कॉमांड वास्तव में और विशिष्ट रूप से करता है जो आपने पूछा था। – felipeclopes

उत्तर

22

हां, increment विधि है जिसे आप अपने ActiveRecord में कॉल कर सकते हैं।

संदर्भ के लिए: increment

संपादित करें:

instance.increment!(:ads_counter) 

यह स्वचालित रूप से से वृद्धि कर देता है:

यह सीधे increment!

आप इसे उपयोग कर सकते हैं इस तरह से बचाने के लिए उपयोग करने के लिए 1

instance.increment!(:ads_counter, <number>) 

यह

+0

में विधि के दस्तावेज़ का एक लिंक है, पूर्ण उत्तर: दस्तावेज़ों का सम्मान + असली उदाहरण + + अच्छा प्रारूपित के बारे में थोड़ा और। धन्यवाद। –

1

आप विधि increment! कि एक विशेषता वृद्धि कर देता है और रिकॉर्ड

your_object.increment!(:ads_counter) 

अपने नियंत्रक के show विधि में इस कोड डाल बचाता है।

+0

इस विधि में केवल 1 से वृद्धि हुई है, या अतिरिक्त पैरा हैं? – Avdept

+0

आप 'your_object.increment का उपयोग कर सकते हैं! (: Ads_counter, 42)'; मेरे उत्तर – Baldrick

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