تحرير: بعد التعمق أكثر في api.addDiscoveryQueryParam، أعتقد أنني فهمت الفكرة العامة الآن:
أريد استرجاع جميع المواضيع برمجياً التي تحتوي على الحقل المخصص fun_level = super-duper-fun. أظن أن طريقة في وحدة التحكم (controller) قد تنجز ذلك؟ (لا زلت أحاول فهم ذلك).
البديل هو إجراء بحث باستخدام ajax(“/search”) حيث أبحث في جميع المواضيع بناءً على الحقل المخصص fun_level=super-duper-fun. لكن إنشاء الحقل المخصص لا يكفي لتمكين ذلك. أحتاج إلى جعل الحقل المخصص fun_level أحد الحقول التي يمكن البحث فيها (تمامًا كما يمكنك البحث في فئات أو وسوم معينة)، وهذا لا يتم تلقائيًا.
بشكل ما، يُطلَب استخدام api.addDiscoveryQueryParam في ملف جافا سكريبت مع TopicQuery في ملف plugin.rb لتحقيق ذلك. لكن، بصراحة، لم أستطع جعلها تعمل بعد. لقد رأيت بعض الإضافات التي تستخدم هذه الطرق، لكنني لم أستطع فهم كيفية “إنجاز المهمة”. أعتقد أن هناك كودًا إضافيًا مطلوبًا، لكنني لم أعثر عليه بعد.
كيف تنتقل من هذه الطرق إلى جعل الحقل المخصص متاحًا فعليًا كمصطلح للبحث؟
رد سابق
شكرًا لك، @angus. للتوضيح، الهدف ليس أن يدخل المستخدمون قيم البحث يدويًا في مربع البحث. الهدف هو استرجاع المواضيع برمجياً بناءً على حقل مخصص معين. على سبيل المثال، سيذهب المستخدم إلى الصفحة /fun_levels/super-duper-fun ويحمل جميع المواضيع حيث يكون الحقل fun_level = ‘super-duper-fun’.
هل api.addDiscoveryQueryParam مخصص لهذا الغرض؟
عند النظر إلى أمثلة مثل هنا، لست متأكدًا من كيفية عمل addDiscoveryQueryParam لاسترجاع المواضيع فعليًا (لا أعتقد أن استدعاء هذه الطريقة يعيد نتائج يمكنني تحليلها).
ربما يكون الغرض منه السماح للمستخدم بالبحث يدويًا بالمصطلح في مربع البحث؟ هذا ليس الموقف الذي أسعى إليه. (قد يكون من الممكن أن أكون قد فاتني شيء ما).
لقد ذكرت استخدام ajax(“/search…”) سابقًا لأن هذا أفضل ما توصلت إليه حتى الآن لاسترجاع المواضيع، لكنني أتساءل عما إذا كانت هناك طريقة أكثر كفاءة للقيام بذلك، حتى لو تطلبت إعداد نموذج وطريقة في وحدة التحكم لعرض المواضيع تلقائيًا، مثل ما تفعله tags/:tag-name (هذا أكثر تعقيدًا، لذا آمل تجنبه، لكن إذا كانت هذه هي الطريقة الأفضل فسأعتبرها).