MODIFICA: Dopo aver approfondito api.addDiscoveryQueryParam, credo di aver capito l’idea generale:
Voglio recuperare programmaticamente tutti gli argomenti con il campo personalizzato fun_level = super-duper-fun. Penso che forse un metodo del controller potrebbe farlo? (sto ancora cercando di capire come).
Un’alternativa è eseguire una ricerca con ajax(“/search”) cercando tutti gli argomenti in base al campo personalizzato fun_level=super-duper-fun. Ma creare il campo personalizzato non è sufficiente per abilitare questa funzionalità. Devo rendere il campo personalizzato fun_level uno dei campi contro cui è possibile cercare (proprio come si può cercare per determinate categorie, tag, ecc.), e questo non viene fatto automaticamente.
In qualche modo, api.addDiscoveryQueryParam in un file js combinato con TopicQuery in plugin.rb è necessario per farlo. Ma, onestamente, non sono ancora riuscito a farlo funzionare. Ho visto alcuni plugin che utilizzano questi metodi, ma non sono riuscito a capire come “portarli a termine”. Penso che sia necessario del codice aggiuntivo, ma non l’ho ancora trovato.
Come si passa da questi metodi all’effettiva disponibilità del campo personalizzato come termine di ricerca?
Risposta precedente
Grazie, @angus. Per chiarire, l’obiettivo non è far inserire manualmente agli utenti i valori di ricerca nella casella di ricerca. L’obiettivo è recuperare programmaticamente gli argomenti in base a un certo campo personalizzato. Ad esempio, l’utente potrebbe andare alla pagina /fun_levels/super-duper-fun e caricare tutti gli argomenti in cui il campo fun_level = ‘super-duper-fun’.
api.addDiscoveryQueryParam serve a questo scopo?
Guardando esempi come questo, non sono sicuro di come addDiscoveryQueryParam funzioni per recuperare effettivamente gli argomenti (non credo che chiamare quel metodo restituisca risultati che posso analizzare).
Forse serve a permettere potenzialmente all’utente di cercare manualmente il termine nella casella di ricerca? Non è la situazione a cui sto mirando. (Potrei assolutamente aver perso qualcosa).
Ho menzionato l’uso di ajax(“/search…”) in precedenza perché è la soluzione migliore che ho trovato finora per restituire gli argomenti, ma mi chiedo se esista un modo più efficiente per farlo, anche includendo la configurazione di un modello e di un metodo del controller per mostrare gli argomenti automaticamente, come fa tags/:tag-name (è più complesso, quindi spero di evitarlo, ma se è il modo migliore lo prenderò in considerazione).