2012-12-06 13 views
6

Rabl permette di afferrare gli attributi per dar loro un nome a vostro parere, per esempio:Rails Rabl - ritorno tutti gli attributi, non appena nominato quelli

object @user 
attributes :name, :email 

Ho un modello i cui attributi non sono saranno resi noti, ma mi piacerebbe visualizzare tutto ciò che è ritornato dal controller nella mia variabile istanza usando rabl.

C'è una scorciatoia come:

attributes :all 

ecc

Grazie

+0

È passato un po 'di tempo da quando l'ho scritto, ma per i futuri lettori https://github.com/rails/jbuilder è fantastico, facile da usare e consente la creazione di oggetti JSON molto rapida e semplice. – Squadrons

risposta

21

Si dovrebbe essere in grado di utilizzare .column_names:

attributes *User.column_names 
+0

Questa è l'unica risposta che sono riuscito a trovare. – Magicmarkker

+0

Hm, non riesco a chiamare i nomi delle colonne su un'istanza di un modello utente. Posso chiamare column_names sul modello User nella console, ma non su una particolare istanza del modello. – Squadrons

+0

Hai ragione, è un metodo di classe - risolto. In alternativa, puoi chiamare '.class' se non puoi essere sicuro della classe del modello:' * @ user.class.column_names' – PinnyM

5

Se si vuole sbarazzarsi di alcune colonne, come "created_at" e "updated_at":

attributes *User.column_names - ["created_at", "updated_at"]