Формат 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
Другие вопросы по тегам