2016-08-02 14 views
0

Kann man beim Rendern bedingte Ausnahmeoptionen, nur oder einschließen? Also, wie in dem Beispiel unten:Bedingte Ausnahme, nur in render json für Rails enthalten

render json: @post, 
except: [:author] 

Ist es möglich, dass außer Option oder eine ähnliche Option bedingte haben?

Idealerweise kann ich so etwas wie eine bedingte Vorgehensweise tun, die es mir ermöglicht, mit vielen verschiedenen Bedingungen und Fällen umzugehen.

Wie vielleicht so etwas wie:

render json: @post, 
except: return_excluded_keys 

return_excluded_keys Funktionstasten zurückkehren konnten, die ausgeschlossen werden müssen.

Ich verwende Rails 4.2.6 und Active Model Serializers 0.9.3.

Antwort

0

Conditional attributes in Active Model Serializers

https://github.com/rails-api/active_model_serializers/issues/825

Ich glaube, diese Sie in die richtige Richtung zeigen sollte. Sie können eine Bedingung an den Serialiser übergeben und dann die Ausgabe manuell erstellen.

+0

Danke für die Links! Im Idealfall hatte ich gehofft, dass es eine Möglichkeit gibt, es im Controller selbst zu tun, anstatt dass der Serializer mit einer Reihe von Bedingungen fertig wird. Wenn nichts anderes, werde ich dafür gehen! – geoboy

0

Vielleicht:

render json: @post.as_json(except: [:author]) 
+0

Sorry, ich könnte nicht folgen. Wie lässt dies zu, dass der "ausgenommene" Teil bedingt ist? – geoboy

+0

Hoppla, es tut mir sehr leid, dass ich deine Frage missverstanden habe. Meinst du, Rendering 'Autor' nur eine Bedingung trifft? Wenn ja, warum verwenden Sie nicht nur den ternären Operator 'condition? render (json: @post): render (json: @post, außer: [: author]) ' – Canh

+0

Ich hoffte auf einen bedingten Weg, dies zu tun, der es mir erlaubt, mit vielen verschiedenen Zuständen und Fällen umzugehen. Vielleicht etwas wie: 'except: return_excepted_keys' und diese Funktion könnte Schlüssel zurückgeben, die ausgeschlossen werden müssen. – geoboy