0

在我的控制器操作之一中,我将一个项目分配给用户,并且我想用一些关于用户的信息和一些关于项目的信息来响应对它的 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}}

所以在我的萤火虫控制台中,我可以在我的控制台中看到响应对象

    // 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 响应中与模型一起返回虚拟属性吗?

谢谢你!

4

2 回答 2

0

明白了!,这是一个解决方案:

        format.json { render json: {user:current_user.as_json(methods:[:full]), assignable:@project}}
于 2012-06-21T22:43:23.977 回答
0

这对我很有效:

SomeController
  respond_to :json


def some_action
  @response = { :user => current_user, :assignable => @project )
  respond_with @response
end
于 2012-06-22T04:24:09.247 回答