Формат rails response_to json включает две (или более) модели и некоторые их виртуальные атрибуты?
В одном из моих действий с контроллером я назначаю проект пользователю и хочу ответить на запросы json, предоставив ему некоторую информацию о пользователе и некоторую информацию о проекте. В настоящий момент я могу видеть все их атрибуты базы данных, например:
# ruby code...
# current_user.first_name #=> "Nik" db attr
# current_user.full #=> "Nik So" virtual attr
# @project.name #=> "buy something"
format.json { render json: {user:current_user), assignable:@project}}
Так что в моей консоли Firebug я вижу объект ответа в моей консоли
// JS code
success: function(r){window.test = r}
//in console
test.user.first_name //"Nik"
test.assignable.name //"buy something"
test.user.full //undefined
Есть ли шанс, что я могу вернуть виртуальные атрибуты вместе с моими моделями в ответе JSON?
Благодарю вас!
2 ответа
Решение
Понял!, вот решение:
format.json { render json: {user:current_user.as_json(methods:[:full]), assignable:@project}}
Это хорошо работает для меня:
SomeController
respond_to :json
def some_action
@response = { :user => current_user, :assignable => @project )
respond_with @response
end