Die Angabe von Parametern einer Rails übergebene Objekt in einen JSON-Objekt
Ich habe ein Objekt in Schienen, die Attribute A, B, C, D und E. Bei der übergabe dieses Objekt wieder auf der client-Seite durch ein JSON-Objekt, wie kann ich die rails-controller zu beinhalten nur Attribute A und D in das JSON-Objekt?
Innerhalb meines Benutzer-controller, mein code ist wie folgt:
@user = User.find(params[:id])
respond_to do |format|
format.html
format.json { render :json => @user}
end
Dieser code funktioniert, aber das JSON-Objekt, das zurückgegeben wird, enthält alle Attribute der @user-Objekt. Wie kann ich die Grenze der Attribute in der JSON-Objekt vor, alles wird zurück an den client gesendet?
UPDATE: lucapette bietet einige gute Hintergrundinformationen über das, was hinter den kulissen geschieht. Da gibt es Zeiten, wenn ich würde wahrscheinlich wollen, dass alle Attribute zurückgegeben, landete ich mit dem folgenden code:
format.json { render :json => @user.to_json(:only => ["id"])}
Du musst angemeldet sein, um einen Kommentar abzugeben.
rufen
to_json
auf die @user-Objekt. Und dieto_json
Methode verwenden, dieas_json
Methode, seine Arbeit zu tun. So können Sie problemlos überschreiben deras_json
passieren nur, was Sie wollen, zu den Kunden. Wie in den folgenden:Schöner Weg, über die hier So wählen Sie nur bestimmte Attribute aus einem Modell?
verwenden Sie auswählen, um nur bestimmte Attribute.
Natürlich nur funktioniert, wenn Sie nicht brauchen, die anderen Attribute im code.
Als eine Allgemeine Art und Weise zu attackieren problem, rabl ist einen Blick Wert https://github.com/nesquena/rabl