شكراً @david. من المضحك أن هذا بالضبط ما فعلته للربط في الاتجاه الآخر (من ملفات تعريف المستخدمين في تطبيق Rails الخاص بي إلى ملفات تعريف مستخدمي Discourse) عبر هذه الإضافة لـ Discourse (/user-by-id/123/summary) نظرًا لأن تطبيق Rails الخاص بي يخزن معرف مستخدم Discourse بدلاً من اسم المستخدم (حيث يمكن أن تتغير أسماء المستخدمين).
هذا الحل سيعمل في الاتجاه الآخر باستثناء حقيقة أن ليس كل مستخدمي المنتدى لديهم ملفات تعريف مستخدمين في تطبيق Rails الخاص بي. يتم إنشاء مستخدم Rails فقط بمجرد أن “ينضم” مستخدم Discourse إلى المنظمة، بينما يمكن أن يحتوي منتدى Discourse على أعضاء غير مشتركين.
لذلك أعتقد أن خياري هما:
أ) إنشاء إضافة JavaScript ترسل طلب AJAX إلى تطبيق Rails الخاص بي لتحديد ما إذا كان مستخدم Discourse هو أيضًا مستخدم في تطبيق Rails الخاص بي، وإذا كان الأمر كذلك، فقم بعرض رابط؛ أو
ب) عند إنشاء مستخدم Rails وربطه بمستخدم Discourse، بالإضافة إلى تخزين معرف مستخدم Discourse في قاعدة بيانات تطبيق Rails، قم بطريقة ما بتخزين معرف مستخدم Rails في ملف تعريف مستخدم Discourse (على سبيل المثال، كمجال مستخدم مخصص).
أعتقد أن (ب) هو الحل الأفضل (بشرط ألا يتمكن المستخدمون من تغيير مجال المستخدم المخصص إلا المسؤولون)، على الرغم من أنني لست على دراية بالمجالات المخصصة أو ما إذا كان يمكن الوصول إليها عبر API.
تحرير: الآن أتذكر من المرة الأخيرة التي نظرت فيها في هذا الأمر: المشكلة هي أن مجالات المستخدم المخصصة قابلة للتغيير من قبل المستخدم، مما يجعلها مكانًا سيئًا لتخزين مرجع تم إنشاؤه بواسطة النظام مثل هذا: /