2012-01-20 10 views

Odpowiedz

11

Można to zrobić za pomocą metody jednego wiersza w Pakke:

def as_json(*args) 
    super.tap { |hash| hash["name"] = hash.delete "navn" } 
end 

Wywołanie super wygeneruje json hash jak zwykle, a potem, zanim powrócił będziesz spadać i zmień klucz wpisu "navn".

+0

To jest eleganckie i super fajne rozwiązanie! Dzięki za to :) – Amir

+0

świetne rozwiązanie, przydatne dla tych chronionych atrybutów, które kolidują ze starymi wersjami IE ... –

+0

nie usuwanie mojej kolumny ani dodawanie jej w hashu. Chociaż wygląda dobrze, ale nie działa. –

2

Zastąp metodę as_json. Jest używany przez to_json w celu wygenerowania wyjścia. Można zrobić coś takiego:

def as_json options={} 
{ 
    name: navn, 
    .... # other attributes you want to add to json 
} 
end