मेरे पास एक चित्र मॉडल है जिसमें दृश्य गणना (पूर्णांक) के लिए एक चर शामिल है। प्रत्येक बार कोई चित्र ऑब्जेक्ट देखने पर दृश्य गणना +1 द्वारा बढ़ी जाती है।.increment बनाम + = 1
इस करवाने में,
@picture.view_count += 1
@picture.save
और
@picture.increment(:view_count, by = 1)
भी
अगर मैं वेतन वृद्धि का उपयोग करें, .save आवश्यक है के बीच क्या अंतर है?
वाक्य रचना नहीं करना चाहिए '@ picture.increment (: VIEW_COUNT, 1)'? –
समवर्तीता से अवगत रहें !! इस मामले में आपके दोनों समाधान सुरक्षित नहीं हैं! कल्पना करें कि दो उपयोगकर्ता एक ही समय में कोड चलाते हैं। दोनों एक ही 'view_count' मान के साथ काम करते हैं। फिर दूसरा उपयोगकर्ता सहेजने वाले पहले उपयोगकर्ता के मान को ओवरराइट करता है और अंतिम गणना अपेक्षा से कम होती है। इससे बचने के लिए आपको 'increment_counter' का उपयोग करना चाहिए। –