إذًا يا رفاق، لدي منتدى، وفي هذا المنتدى أنا المسؤول والمالك الوحيد! اتضح أنه عندما أنشأت هذا الموقع، استخدمت بريدًا إلكترونيًا يسمى REDACTED، هذا البريد الإلكتروني استخدمته عبر لوحة تحكم TMD hosting، حدث أنني لم أعد أستخدم خدمات TMD hosting وانتقلت إلى DigitalOcean، ونسيت حتى أن بريد المسؤول الخاص بي كان هذا، لم أقم بتغييره! اتضح أنه الآن ذهبت لمنح الإدارة لحساب آخر لي على المنتدى، والمنتدى يطلب مني إدخال حسابي REDACTED وتأكيد أنني أريد منح الإدارة لحساب آخر، لكنني لم أعد أستطيع الوصول إلى لوحة تحكم TMD hosting للوصول إلى REDACTED، ماذا أفعل؟
لقد اتصلت بـ TMD hosting وأُبلغت أن بريدي الإلكتروني REDACTED لم يعد موجودًا، وأنه لا يمكنني تفعيله إلا بشراء خادم جديد، ولكن ماذا عن مسؤول المنتدى الخاص بي؟ هل ستبقى عالقًا إلى الأبد في هذا البريد الإلكتروني REDACTED؟ ألا توجد طريقة لتغييره على الرغم من أن لدي كلمة المرور لجميع الأشياء الموجودة في منتدىي الخاص؟
تحتاج إلى اتباع الدليل عن كثب. لقد فاتتك الخطوات التي تقوم فيها بالدخول إلى الحاوية، ثم الوصول إلى Rails Console قبل تشغيل الأوامر التالية.
ومع ذلك، أقترح أيضًا أخذ نسخة احتياطية من موقعك قبل التعمق أكثر. الخطوات خطوة بخطوة في الدليل تجعل الأمر أسهل بالتأكيد، ولكن إذا كنت غير مألوف مع Rails Console، يمكن أن تحدث حوادث. لا تريد أن تفسد أي شيء دون وجود نسخة احتياطية حديثة في متناول اليد.
root@ForumPandex:~# cd /var/discourse
root@ForumPandex:/var/discourse# ./launcher enter app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@ForumPandex-app:/var/www/discourse#
root@ForumPandex:~# cd /var/discourse
root@ForumPandex:/var/discourse# ./launcher enter app
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml
root@ForumPandex-app:/var/www/discourse# rails c
[1] pry(main)> u = User.find_by_username "=dex="
=> nil
[2] pry(main)> e.email = "EMAIL"
NameError: undefined local variable or method `e' for main:Object
from (pry):2:in `__pry__'
[3] pry(main)> u.email = "EMAIL"
NoMethodError: undefined method `email=' for nil:NilClass
from (pry):3:in `__pry__'
[4] pry(main)> u.email_tokens.create(email: u.email)
NoMethodError: undefined method `email_tokens' for nil:NilClass
from (pry):4:in `__pry__'
[5] pry(main)> u.save!
NoMethodError: undefined method `save!' for nil:NilClass
from (pry):5:in `__pry__'
[6] pry(main)>
لقد نقلت منشوراتك إلى هنا للحفاظ على جميع معلومات المشكلة في مكان واحد حتى يتمكن الأشخاص من العثور عليها بسهولة لمساعدتك.
للعلم أيضًا، يجب أن تفكر في عدم الكشف عن بريدك الإلكتروني الخاص بالمسؤول في طلبات المساعدة الخاصة بك. أحد خبرائنا المجتمعيين يقوم بتحريره من منشوراتك أثناء تقدمك، ولكن سيكون من الأسهل إذا لم يتم تضمينه.
يبدو أنك اكتشفت كيفية الوصول إلى وحدة تحكم rails. ولكن يبدو أنك قمت بتضمين علامات = النائبة عند إدخال اسم المستخدم. يجب عليك إدخال اسم المستخدم بدونها.
على الرغم من أن @pfaffman قد اقترح طريقة بديلة إذا ثبت أن هذه الطريقة صعبة للغاية:
إذا قمت بإنشاء مسؤول ثانٍ، فسيسمح لك ذلك بإزالة امتيازات المسؤول من الحساب الذي تريد تغيير عنوان بريده الإلكتروني، وإزالة قيد الأمان المتمثل في الحاجة إلى تأكيد البريد الإلكتروني من عنوان البريد الإلكتروني القديم. يمكنك بعد ذلك تغيير البريد الإلكتروني للحساب الأصلي باستخدام المسؤول الجديد، قبل إعادة منح امتيازات المسؤول مرة أخرى.
لم تدخل اسم المستخدم في الحقول الفارغة في الموضوع الذي يحتوي على الكود، لذا فإن ما يجب أن يكون هو اسم المستخدم بدلاً من النص الذي هو العنصر النائب.
u = User.find_by_username "=dex="
يجب أن يكون.
u = User.find_by_username "dex"
إذا كان “dex” هو اسم المستخدم. حقيقة أنه يُرجع “nil” بدلاً من سجل المستخدم هي مؤشر على أنه ليس لديك سجل مستخدم. نظرًا لأنك لا تفهم هذه الأساسيات، فإنني أوصي بشدة بإنشاء مستخدم جديد كما هو مقترح سابقًا. سيتيح لك ذلك العمل بأدوات مألوفة أكثر.