MODIF : Après avoir examiné de plus près api.addDiscoveryQueryParam, je pense comprendre l’idée générale :
Je souhaite récupérer programmatiquement tous les sujets avec le champ personnalisé fun_level = super-duper-fun. Je pense qu’une méthode de contrôleur pourrait le faire ? (je suis encore en train de comprendre ça).
Une alternative consiste à effectuer une recherche via ajax("/search") en recherchant tous les sujets basés sur le champ personnalisé fun_level=super-duper-fun. Cependant, créer le champ personnalisé ne suffit pas pour activer cette fonctionnalité. Je dois rendre le champ personnalisé fun_level l’un des champs contre lesquels on peut rechercher (tout comme on peut rechercher dans certaines catégories, tags, etc.), et cela ne se fait pas automatiquement.
D’une certaine manière, api.addDiscoveryQueryParam dans un fichier JS, combiné à TopicQuery dans plugin.rb, est nécessaire pour y parvenir. Mais, honnêtement, je n’ai pas encore réussi à faire fonctionner cela. J’ai vu certains plugins utiliser ces méthodes, mais je n’ai pas réussi à comprendre comment ils « finalisent » le tout. Je pense qu’un code supplémentaire est nécessaire, mais je ne l’ai pas encore trouvé.
Comment passer de ces méthodes à la disponibilité effective du champ personnalisé en tant que terme de recherche ?
Réponse précédente
Merci, @angus. Pour clarifier, l’objectif n’est pas que les utilisateurs saisissent manuellement des valeurs de recherche dans la zone de recherche. L’objectif est de récupérer programmatiquement des sujets basés sur un certain champ personnalisé. Par exemple, l’utilisateur se rendrait sur la page /fun_levels/super-duper-fun pour charger tous les sujets où le champ fun_level = ‘super-duper-fun’.
Est-ce que api.addDiscoveryQueryParam sert à cet effet ?
En examinant des exemples comme ici, je ne suis pas sûr de comprendre comment addDiscoveryQueryParam fonctionne pour récupérer réellement les sujets (je ne pense pas que l’appel de cette méthode retourne des résultats que je puisse analyser).
Peut-être est-ce pour permettre potentiellement à l’utilisateur de rechercher manuellement le terme dans la zone de recherche ? Ce n’est pas la situation que je vise. (Je pourrais tout à fait manquer quelque chose).
J’ai mentionné plus tôt l’utilisation de ajax("/search…") car c’est la meilleure solution à laquelle j’ai pensé jusqu’à présent pour retourner des sujets, mais je me demande s’il existe une méthode plus efficace, y compris éventuellement la mise en place d’un modèle et d’une méthode de contrôleur pour afficher automatiquement les sujets, comme le fait tags/:tag-name (c’est plus complexe, donc j’espère l’éviter, mais si c’est la meilleure solution, je l’envisagerai).