В вашей модели вы можете изменить способ работы json.Например, предположим, у вас есть модель ActiveRecord Contact
.Вы можете переопределить as_json
, чтобы изменить поведение рендеринга.
def Contact < ActiveRecord::Base
def as_json
hash = super
hash.collect {|key, value|
{"field" => key, "code" => determine_code_from(value)}
}
end
end
Конечно, вы также можете сгенерировать json отдельным методом на Contact
или даже в контроллере.Вам просто нужно немного изменить метод рендеринга.
render @contact.as_my_custom_json