2013-03-09 3 views
7

Ich verwende active_model_serializers und möchte einen Weg finden, alle Modelle Attribute standardmäßig enthält und dann die, die angeben, so etwas wie dieseWie verwende ich active_model_serializers, um standardmäßig alle Attribute einzuschließen und sie zu filtern?

 exclude :date_created, :first_name 

zu verwenden, die ich nicht brauche.

Bis jetzt habe ich nicht einen Weg finden, um die exportierten Attribute neben dem in der Dokumentation zu spezifizieren und dass durch Aufzählen all benötigten Attribute erfolgt:

 attributes :title, :body 

Antwort

8

etwas, was Sie tun könnten, wie diese auf Ihr Modell Serializer (ein Beispiel für Benutzer als Modell nehmen):

class UserSerializer < ApplicationModelSerializer 
    attributes(*User.attribute_names.map(&:to_sym)) 
end 

Mehr Informationen über Active attribute_names finden Sie hier: http://apidock.com/rails/ActiveRecord/AttributeMethods/attribute_names

+1

Tha Nein, du. Die endgültige Lösung wäre: 'attributes (* (User.attribute_names - [" date_created "," first_name "]) .map (&: to_sym))' – tavi

+0

Ich habe einen Fehler für diese, bitte beziehen Sie sich auf meine Antwort hier: http : //stackoverflow.com/a/27701138/243797 – xhh

+0

leider 'attributes' akzeptiert kein Array als Eingabe :( – Tilo

Verwandte Themen