Die json
Bibliothek (Teil der Ruby-Standard-Bibliothek) und andere Edelsteine wie Active, Affe Patch Objekte mit einem to_json
Verfahren, das, was sein könnte, wird immer genannt , kein die spezifische to_json
Methode von Sequel geliefert, die weiß, wie man eine Sequel::Model
Instanz zu JSON konvertieren. Das ist Spekulation, wie ich wäre überrascht, dass die JSON-Bibliothek Affen Patches etwas anderes als String
, Array
, Hash
usw.
Wenn DB[:clients].first
verwenden Sie wahrscheinlich eine Hash
zurück, die eine to_json
Methode hat, wo als Client.first
ein Modell zurückgibt Instanz, die nicht von der generischen to_json
-Methode behandelt wird, die von der json-Bibliothek bereitgestellt wird.
Versuchen Sie, das Sequel JSON-Plugin registriert, sollte dies Vorrang vor dem Affen nehmen gepatcht to_json
Methode:
Sequel::Model.plugin :json_serializer
Durch die Möglichkeit, dies ist ein guter Indikator dafür, warum Affen Patchen ist oft eine schlechte Idee, vor allem Affen Patchen von Klassen, die sich außerhalb eines Namensraumes für Bibliotheken/Edelsteine befinden.
Hast Du diesen irgendwo rumstehen: 'Sequel :: Model.plugin: json_serializer'. Wenn ja, was ist 'Client.first.class'? – Kris
Ok, ich habe es einfach hinzugefügt und es hat sofort funktioniert, vielen Dank! – Mackaber
Ich würde 'Client.first.to_h.to_json' versuchen. Ein Modell gibt eine Instanz dieser Klasse zurück, sodass Sie das Ergebnis in einen Hash konvertieren müssen. –