आपके अपडेट के अनुसार मैं इसका प्रस्ताव दूंगा:हर बार जब आप किसी ऐसे उपयोगकर्ता को हटाते हैं जिसके पास पोस्ट हैं और फिर उनके पोस्ट को सूचीबद्ध करने का प्रयास करते हैं <%= post.user.name %>
शून्य वापस आ जाएगा क्योंकि इस पोस्ट में अब संदर्भित करने के लिए कोई उपयोगकर्ता नहीं है। आप या तो
has_many :posts, dependent: :destroy
उपयोगकर्ता मॉडल में जैसा कि मैंने ऊपर सुझाव दिया है, या आप उपयोगकर्ताओं को उनकी पोस्ट देखने का प्रयास करते समय त्रुटियों को रोकने के लिए हटाने के लिए कुछ कार्यक्षमता जोड़ते हैं। कुछ विकल्प हैं:
जब कोई उपयोगकर्ता हटा दिया जाता है तो आप उपयोगकर्ता तालिका की उस पंक्ति में उनके नाम और आईडी के अलावा सब कुछ हटा सकते हैं, जो आपको <%= post.user.name %>
रखने की अनुमति देगा। एक मूल्य वापस करें।
जब कोई उपयोगकर्ता हटा दिया जाता है तो आप उनकी उपयोगकर्ता तालिका जानकारी में सब कुछ हटा सकते हैं और "-उपयोगकर्ता-हटाया" जोड़ सकते हैं, इसके बाद Tumblr क्या करता है जब कोई उपयोगकर्ता अपना खाता निष्क्रिय करता है और उनका नाम किसी अन्य Tumblr पर एक पोस्ट में दिखाई देता है।
आप "उपयोगकर्ता द्वारा हटाए गए" नामक डीबी में एक उपयोगकर्ता बना सकते हैं और उस उपयोगकर्ता को हटाए गए उपयोगकर्ता से प्रत्येक पोस्ट प्राप्त कर सकते हैं। उपयोगकर्ता नियंत्रक में अपने delete
. में कुछ जोड़ें उपयोगकर्ता_आईडी फ़ील्ड को उनकी पोस्ट में "उपयोगकर्ता द्वारा हटाए गए" खाते में बदलने की कार्रवाई।
या अंत में आप यह देखने के लिए जांच कर सकते हैं कि क्या post.user कोई मान देता है, और यदि नहीं तो "उपयोगकर्ता अब सिस्टम में मौजूद नहीं है" जैसे कुछ प्रिंट करें।
यह सब निश्चित रूप से इस बात पर निर्भर करता है कि क्या आप उपयोगकर्ताओं को हटाने की अनुमति देना चाहते हैं लेकिन फिर भी उनकी पोस्ट रखते हैं। यह निश्चित रूप से एक संभावित मामला है यदि यह सिर्फ एक क्लास प्रोजेक्ट या कुछ ऐसा है जो आप रेल सीखने के लिए कर रहे हैं। उम्मीद है ये मदद करेगा। यह निश्चित रूप से मुझे उपयोगकर्ताओं को उनके बाद साफ करने के लिए कुछ जगह के बिना अपने प्रोफाइल को हटाने की अनुमति देने में होने वाले नुकसान के बारे में सोचने पर मजबूर कर देता है।