Récupérer des sujets basés sur un champ personnalisé ?

La méthode à suivre est la suivante :

  1. Côté client : ajoutez un paramètre de requête topic en utilisant api.addDiscoveryQueryParam

  2. Côté serveur : filtrez les requêtes topic par ce paramètre en utilisant add_custom_filter dans la classe TopicQuery (voir lib/topic_query)

Le callback add_custom_filter ressemblera à ceci :

::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 « J'aime »