Получить темы на основе пользовательского поля?

Чтобы сделать это, выполните следующие шаги:

  1. На стороне клиента: добавьте параметр запроса темы, используя api.addDiscoveryQueryParam

  2. На стороне сервера: отфильтруйте запросы по теме с помощью параметра, используя add_custom_filter в классе TopicQuery (см. lib/topic_query)

Обратная связь 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