Rails 4 - Anpassen des (json-) Formats von Antwortobjekten in Rails

7

Ich habe einen Rails Controller, der mit JSON-Objekten antwortet. Nehmen wir dieses theoretische Beispiel:

%Vor%

Dies würde mit etwas wie

antworten %Vor%

Was ich suche, ist eine "best practice" -Methode, die die Formatierung des json-Objekts beeinträchtigt und so etwas zurückgibt:

%Vor%

Wie Sie sehen können, füge ich eine Spalte hinzu, die nicht im Datenbankmodell "Benutzername" existiert, ich nehme "updated_at" heraus, und ich formatiere "created_at", um eher lesbaren Text zu enthalten als ein Datum.

Irgendwelche Gedanken jemand?

    
Cosmin 26.07.2013, 16:41
quelle

3 Antworten

12

Das Überschreiben von as_json oder das Arbeiten mit JSON ERB-Ansichten kann mühsam sein, deshalb bevorzuge ich ActiveModel-Serializer (oder RABL):

%Vor%

Hier finden Sie weitere Informationen:

  1. Ссылка
  2. Ссылка
lawitschka 30.07.2013 15:29
quelle
4

2 Möglichkeiten:

zuerst: Definieren Sie eine Ansicht, in der Sie einen Hash erstellen und zurückgeben, den Sie in json konvertieren.

Controller:

%Vor%

view: index.json.erb

%Vor%

Zweitens: Verwenden Sie gem active_model_serializers

    
Alive Developer 26.07.2013 16:47
quelle
3

Ich würde die Methode as_json Ihres Modells neu definieren.

In Ihrem Kommentarmodell

%Vor%

Sie müssen Ihren Controller nicht ändern

Sehen Sie sich die Dokumentation für as_json

    
RedXVII 26.07.2013 16:53
quelle

Tags und Links