2013-03-09 12 views
7

Sto usando active_model_serializers e vorrei trovare un modo per includere tutti gli attributi del modello di default e quindi usare qualcosa di simileCome utilizzare active_model_serializers per includere per impostazione predefinita tutti gli attributi e filtrarli?

 exclude :date_created, :first_name 

per specificare quelli che non ho bisogno.

Fino ad ora non ho trovato un modo per specificare gli attributi esportati oltre a quella nella documentazione e che è fatto da enumerare tutti gli attributi necessari:

 attributes :title, :body 

risposta

8

si potrebbe fare qualcosa di simile su il vostro modello serializzatore (prendendo un esempio di utente come il modello):

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

Maggiori informazioni su attribute_names ActiveRecord si possono trovare qui: http://apidock.com/rails/ActiveRecord/AttributeMethods/attribute_names

+1

Tha tu no. La soluzione finale sarebbe: 'attributes (* (User.attribute_names - [" date_created "," first_name "]) .map (&: to_sym))' – tavi

+0

Ho ricevuto un errore per questo, pls si riferisce alla mia risposta qui: http : //stackoverflow.com/a/27701138/243797 – xhh

+0

sfortunatamente 'attributes' non accetta un array come input :( – Tilo

Problemi correlati