استرداد المواضيع بناءً على حقل مخصص؟

الطريقة للقيام بذلك هي

  1. على جانب العميل: أضف معامل استعلام للموضوع باستخدام api.addDiscoveryQueryParam

  2. على جانب الخادم: قم بتصفية استعلامات الموضوع بناءً على المعامل باستخدام add_custom_filter في فئة TopicQuery (راجع lib/topic_query)

ستبدو استدعاءات التمرير (callback) الخاصة بـ add_custom_filter بهذا الشكل تقريبًا

::TopicQuery.add_custom_filter(:field_name) do |topics, query|
  if query.options[:field_name]
    topics.where("topics.id in (
      SELECT topic_id FROM topic_custom_fields
      WHERE (name = 'field_name')
      AND value = '#{query.options[:field_name]}'
    )")
  else
    topics
  end
end
3 إعجابات