ruby on rails - quickstart - Incluso un attributo virtuale nel reply_with hash



ruby on rails download (2)

In Rails 3 si può usare il seguente

@yourmodel.to_json(methods: ['virtual_attr1', 'virtual_attr2']

Sto cercando di includere un attributo / metodo virtuale all'interno di un respond_to hash JSON.

Il modello (employee.rb)

attr_reader :my_method

def my_method
  return "foobar"
end

The Controller (employees_controller.rb)

respond_to :json

def index
  @employees = Employee.all
  respond_with(:data => @employees, :total => Employee.all.count)
end

È importante avere "dati" come radice di JSON per la raccolta di "dipendenti" e anche includere il "totale" all'interno dell'hash. Funziona bene e restituisce un buon risultato JSON di tutti gli impiegati e il valore totale.

La mia qustion è: come posso includere l'attributo virtuale "my_method" per ogni dipendente all'interno dell'hash del dipendente nella risposta JSON?

Grazie per il tuo tempo!


La sovrascrittura di as_json nel tuo modello dovrebbe fare il trucco:

def as_json(options={})
  { :methods=>[:my_method] }.merge(options)
end




activerecord