الطريقة للقيام بذلك هي
-
على جانب العميل: أضف معامل استعلام للموضوع باستخدام
api.addDiscoveryQueryParam -
على جانب الخادم: قم بتصفية استعلامات الموضوع بناءً على المعامل باستخدام
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