2009-03-25 1 views
5

У меня есть JSON сериализации работает нормальноДобавление дополнительных атрибутов в сериализацию ActiveRecord?

render :json => "#{current_object.serialize(:json, :attributes => [:id, :name])} 

Но я также хочу, чтобы добавить дополнительные данные в формате JSON, прежде чем она получает набор обратно клиенту. В основном auth_token.

Входит в систему как сумасшедший, но я не могу найти, какой вариант сериализации возьмет, чтобы позволить мне добавлять/объединять другие данные в JSON.

Hopting найти что-то вроде этого ...

current_object.serialize(:json, :attriubtes => [:id, name], :magic_option => {:form_authenticity_token => "#{form_authenticity_token}"}) 

ответ

0

взломан его и двигаться дальше ...

current_object.serialize(:json, :attributes => [:id, :name]).gsub(/\}$/, ", \"form_authenticity_token\": \"#{form_authenticity_token}\"}") 
4

Вы хотите: методы ключ, который работает как: атрибуты, но будут представлены результаты приведенных методов. В вашем случае:

current_object.to_json(
    :attributes => [:id, :name], 
    :methods => [:form_authenticity_token] 
) 
+0

Извините, я думаю, я мог бы объяснить вещи немного лучше. Дополнительные данные, которые я хочу добавить (form_aithenticity_token), не являются функцией модели ActiveRecord. Также следует отметить, что вызов #to_json оставляет корневой узел. {название модели: {...}} – 2009-03-26 13:01:01

1

Для чего это стоит, в недавнем Rails я взломанных вместе, что вы хотите, как это:

sr = ActiveRecord::Serialization::Serializer.new(your_object, some_serialization_options).serializable_record 
sr['extra'] = my_extra_calculation(some_parameters) 
format.json { render :json => sr } 

Где your_object является то, что вы хотите сериализовать, some_serialization_options ваш стандарт: include,: only, etc parameters и my_extra_calculation - это то, что вы хотите сделать, чтобы установить значение.

Jimmy

Смежные вопросы