Fügen benutzerdefinierte Themenfelder eine Spalte zum Themenmodell hinzu? Ich erhalte einen Fehler, der das verneint, und versuche herauszufinden, was ich dagegen tun kann.
Ich habe in der Entwicklung ein benutzerdefiniertes Themenfeld erstellt, wobei ich hier gefolgt bin. Nennen wir es fun_level. Das benutzerdefinierte Feld scheint in der Entwicklung erfolgreich erstellt worden zu sein, denn wenn ich einen Ajax-Aufruf tätige, um ein von mir erstelltes Thema abzurufen, nachdem ich das benutzerdefinierte Feld hinzugefügt habe – etwa ajax("/t/112.json") – funktioniert es: Die Themendaten werden zurückgegeben und zeigen das Feld fun_level mit dem von mir eingegebenen Wert.
Jetzt muss ich jedoch einen Weg finden, programmatisch alle Themen mit einem bestimmten Wert für das benutzerdefinierte Feld abzurufen (z. B. eine Liste aller Themen, bei denen fun_level = ‘super-duper-fun’ ist).
Ich habe in Erwägung gezogen, dafür einen ajax("/search")-Aufruf zu verwenden, aber ich habe es noch nicht zum Laufen gebracht.
Eine andere Methode, die ich in Betracht gezogen habe, war die Verwendung von klassischem Rails: Erstellen eines Controllers, und wenn ich zu einem bestimmten Pfad gehe (/fun_levels/:fun_level), rufe ich die folgende show-Methode auf:
def show
respond_to do |format|
format.json { render json: Topic.where(fun_level: 'super-duper-fun') }
end
end
Dann rufe ich ajax("/fun_levels/super-duper-fun.json") auf…
Diese Strategie mit der show-Methode des Controllers/Ajax-Aufruf funktioniert, wenn ich Themen basierend auf einer ID, einem Titel usw. finde. Aber wenn ich den obigen Code verwende – Topic.where(fun_level: 'super-duper-fun') –, erhalte ich einen internen Serverfehler. Und die Logs besagen:
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column topics.fun_level does not exist LINE 1: ... "topics" WHERE "topics"."deleted_at" IS NULL AND "topics"."...
Gibt es eine Möglichkeit, basierend auf einem benutzerdefinierten Feld Themen über eine Controller-Methode abzurufen, wie ich es oben dargestellt habe? (wie bei meinem: { render json: Topic.where(fun_level: 'super-duper-fun') })