La forma de hacerlo es
-
En el cliente: agrega un parámetro de consulta de tema usando
api.addDiscoveryQueryParam -
En el servidor: filtra las consultas de tema por el parámetro usando
add_custom_filteren la claseTopicQuery(consultalib/topic_query)
La función de devolución de llamada add_custom_filter se verá más o menos así
::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