I campi personalizzati per gli argomenti aggiungono una colonna al modello degli argomenti? Sto ricevendo un errore che dice di no e sto cercando di capire come risolvere il problema.
Ho creato un campo personalizzato per gli argomenti in ambiente di sviluppo, seguendo questa guida. Chiamiamolo fun_level. Il campo personalizzato sembra essere stato creato correttamente in sviluppo, perché se faccio una chiamata AJAX per recuperare un argomento che ho creato dopo aver aggiunto il campo personalizzato—ad esempio ajax("/t/112.json")—funziona: i dati dell’argomento vengono restituiti mostrando il campo fun_level con il valore che ho inserito.
Ma ora devo trovare un modo per recuperare programmaticamente tutti gli argomenti con un certo valore per il campo personalizzato (ad esempio, ottenere un elenco di tutti gli argomenti in cui fun_level = ‘super-duper-fun’).
Ho pensato di fare una chiamata ajax("/search") a questo scopo, ma non sono ancora riuscito a farla funzionare.
Un altro metodo che ho considerato è utilizzare il classico Rails: creare un controller e, quando accedo a un certo percorso (/fun_levels/:fun_level), chiamare il seguente metodo show:
def show
respond_to do |format|
format.json { render json: Topic.where(fun_level: 'super-duper-fun') }
end
end
Poi, chiamo ajax("/fun_levels/super-duper-fun.json")…
Questa strategia di metodo show/chiamata AJAX del controller funziona se sto cercando argomenti in base a un ID, titolo, ecc. Ma quando uso il codice sopra—Topic.where(fun_level: 'super-duper-fun')—mi viene restituito un errore interno del server. E nei log c’è scritto:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: la colonna topics.fun_level non esiste LINE 1: ... "topics" WHERE "topics"."deleted_at" IS NULL AND "topics"."...
Esiste un modo per recuperare gli argomenti in base a un campo personalizzato utilizzando un metodo del controller, come ho mostrato sopra? (come il mio: { render json: Topic.where(fun_level: 'super-duper-fun') })