بدون النظر بعناية إلى الكود، أنا متأكد بنسبة 99% أن المشكلة في جانب Rails وليس في جانب تجربة المستخدم (UX)، لذلك لا أعتقد أن تغييره في جانب Rails سيؤدي إلى حل أي شيء. إذا كانت لديك ميزانية، يمكنني المساعدة في معرفة كيفية القيام بما تطلبه، ولكنني لن أعد بأن ذلك سيحل مشكلتك.
يمكنك العثور على ما قمت بتغييره باستخدام شيء مثل هذا:
لا أعتقد أن المشكلة من جانب Rails، نظرًا لأن واجهة المستخدم تسرد العلامات المسموح بها بشكل خاطئ (لذلك تم ترميز هذه القائمة بشكل خاطئ في مكان ما) ولكن يتم تحليل %{base_url} بشكل صحيح بخلاف ذلك (انظر الموضوع)، أي مع Rails يجب أن أكون قادرًا على فرض حفظ القيمة (تجاوز أي فحوصات).
لكن كل هذا خارج الموضوع، في الواقع: كان سؤالي الأصلي مجرد توجيه حول كائن Rails الذي يجب استهدافه. إذا كنت تستطيع تقديم المساعدة المدفوعة فقط، فسأنتظر على أمل أن يكون شخص آخر على استعداد لتقديم بعض المساعدة المجانية (لقد فعلت ذلك في مواضيع أخرى، وأيضًا بعض طلبات السحب على GitHub). لا ضغينة
تعديل: لقد قمت بتعديل مشاركتك أثناء كتابتي. سأرى إلى أي مدى يمكنني الوصول بما اقترحته (لست متأكدًا من كيفية تكييف ذلك لمثالي المحدد حتى الآن). قد يكون TranslationOverride مؤشرًا كافيًا.
لقد كان كافيًا للإشارة، ووجدت أيضًا الخطأ (وهو في رمز روبي):
to=TranslationOverride.where(translation_key:"user_notifications.user_watching_category_or_tag.text_body_template").first
to.value="%{username} posted in \"[%{topic_title}](%{base_url}%{url})\"\n\n--\"
to.save!
ActiveRecord::RecordInvalid: Validation failed: The following interpolation key is invalid: base_url
from /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/validations.rb:80:in `raise_validation_error'
validations.rb هو الجاني … base_url صالح، ويتم تحليله بشكل جيد (كما شرحت في الموضوع المرتبط). يبدو أنني بحاجة إما إلى اختراق validations.rb (يا للعار!) أو تعديل قاعدة بيانات SQL مباشرة (وهو ما كان لدي بعد الترقية) … لذا أحتاج الآن إلى العثور على مكان وجود علامات القالب هذه في قاعدة بيانات بوستجريس
ملاحظة: إنها إصلاح سهل وسريع جدًا للمطورين (يمكنني القيام بـ PR ولكنني أعرف فقط مجموعة فرعية من العلامات حيث يفتقد %{base_url} من العلامات الصالحة)