Ruby on rails rails响应json格式以包含两个(或更多)模型及其一些虚拟属性?
在我的一个控制器操作中,我将一个项目分配给一个用户,我想用一些关于用户和项目的信息来响应json请求。目前,我可以看到它们的所有数据库属性,如下所示:Ruby on rails rails响应json格式以包含两个(或更多)模型及其一些虚拟属性?,ruby-on-rails,respond-to,Ruby On Rails,Respond To,在我的一个控制器操作中,我将一个项目分配给一个用户,我想用一些关于用户和项目的信息来响应json请求。目前,我可以看到它们的所有数据库属性,如下所示: # ruby code... # current_user.first_name #=> "Nik" db attr # current_user.full #=> "Nik So" virtual attr # @project.name #=> "buy som
# 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响应中与模型一起返回虚拟属性
谢谢大家! 明白了!,这里有一个解决方案:
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