संशोधित करना मैं एक कोर्स नामांकन मॉडल बना रहा हूं और जब भी कोई उपयोगकर्ता कोर्स देखता है, तो मैं वर्तमान टाइमस्टैम्प के साथ डेटाबेस को अपडेट करना चाहता हूं। क्या मुझे मौजूदा अपडेटेड फ़ील्ड को अपडेट करना चाहिए या मॉडल के लिए एक अलग क्षेत्र बनाना चाहिए?रेल 3 अपडेटिंग_एट
उत्तर
मैं एक अलग फ़ील्ड बनाउंगा। updated_at
वास्तव में अपने उद्देश्य को सही ढंग से संवाद नहीं करता है। last_viewed_at
जैसे कुछ अधिक उपयुक्त होंगे। बेशक, updated_at
अपडेट किया जाएगा जब आप last_viewed_at
अपडेट करते हैं, तो आपको ओवरराइड करने का एक तरीका ढूंढना होगा, जब आप जो करना चाहते हैं वह उस कॉलम को अपडेट करें।
आप self.record_timestamps
को before_filter
में झूठी करने के लिए अस्थायी रूप से टाइमस्टैम्प अपडेट अक्षम कर सकते हैं और फिर इसे after_filter
में पुन: सक्षम कर सकते हैं।
यदि मैं सही ढंग से समझता हूं तो आप पाठ्यक्रम नामांकन में एक कॉलम बनाना चाहते हैं जिसे last_viewed_at कहा जाता है जिसे जब भी कोई उपयोगकर्ता रिकर्ड करता है सेट किया जाता है?
यदि आप ऐसा करना चाहते हैं, तो अपने पाठ्यक्रम नामांकन के लिए last_viewed_at कॉलम जोड़ने के लिए माइग्रेशन बनाएं (रेल अपडेटेड_ट फ़ील्ड को ओवरराइट न करें)। फिर या तो अपने नियंत्रक तर्क में या मॉडल स्तर में आप उस फ़ील्ड को अपडेट कर सकते हैं। यह इस बात पर निर्भर करता है कि आप इसे कैसे कार्यान्वित करना चाहते हैं।
अधिक जानकारी के लिए http://stackoverflow.com/questions/1091311/touch-updated-at-column-in-rails-2-3-2 देखें –
- 1. रेल 3: रेल
- 2. रेल 3
- 3. रेल 3
- 4. रेल 3
- 5. रेल 3 -
- 6. रेल 3:
- 7. रेल 3:
- 8. रेल 3
- 9. कई सत्यापन रेल 3 (Zombies के लिए रेल, 2: 3)
- 10. रेल 3 टेबल लॉक
- 11. रेल 3 - आप link_to
- 12. रेल 3 मॉडल
- 13. रेल 3 प्रामाणिकता टोकन
- 14. क्रोंटैब + रेल 3 + बंडलर
- 15. रेल 3 मार्ग संदर्भ
- 16. रेल 3 - कस्टम सत्यापन
- 17. कैसे रेल 3
- 18. रेल 3 - best_in_place संपादन
- 19. रेल 3 प्रमाणीकरण समाधान
- 20. प्रत्येक पाश रेल 3
- 21. रेल 3 has_one
- 22. रेल 3 टाइमज़ोन त्रुटि
- 23. फ्लैश संदेश (रेल 3)
- 24. रेल 3, लेआउट
- 25. रेल 3 में छुपा_फील्ड
- 26. जेडटेबल और रेल 3
- 27. रेल 3: Doorkeeper मणि
- 28. रेल 3: after_create
- 29. रेल 3 कस्टम अपवाद
- 30. रेल 3 राउटिंग regex
मुझे लगता है कि वहाँ एक बेहतर तरीका है, लेकिन चेक बाहर आप एक टॉगल 'CourseEnrollment.record_timestamps = FALSE' रिकॉर्ड अद्यतन करने से पहले कर सकते हैं। – Jordan
मैं भी अतिरिक्त कॉलम के साथ जाऊंगा। अद्यतन टाइमस्टैम्प को संशोधित करने के लिए, एक अतिरिक्त मॉडल विधि जोड़ें, जिसे शायद "देखा गया" कहा जा सके, और वहां एक कॉल डालें: "update_attribute: last_viewed_at, Time.now"। यह सिर्फ इस क्षेत्र को अपडेट करेगा। रिकॉर्ड को दिखाते हुए आपके नियंत्रकों में, बस "रिकॉर्ड करें। देखा गया!" फिर। – hurikhan77