使用jbuilder时如何显示对象的属性?

时间:2016-04-22 20:18:01

标签: ruby-on-rails jbuilder

我想向员工展示,以及所有报告如下:

{
name :'ceo'
salary: '1000000'
directs:
    {
        name: 'sally',
        salary: '100000'
    },
    {
        name: 'phil',
        salary: '100000'
    }
}

我必须有一个缺陷,以便我只能在directs下获得所有内容。这是show操作的jbuilder代码:

json.extract! @employee, :name, :salary

json.array! @employee.direct_reports do |d|
    json.name d.name
    json.salary d.salary
end

我已尝试过代码第一部分的多次迭代,但我在休息调用中不断看到以下内容,例如http://localhost:3000/employees/1.json

[    
    {
        name: 'sally',
        salary: '100000'
    },
    {
        name: 'phil',
        salary: '100000'
    }
]

2 个答案:

答案 0 :(得分:1)

确保您在相应的控制器中有respond_to :json,并且您已将@employee变量设置为正确。

同时尝试停止并启动rails应用程序。

查看此jbuilder代码段:

json.extract! @employee, :name, :salary

json.directs @employee.direct_reports do |d|
  json.name d.name
  json.salary d.salary
end

答案 1 :(得分:0)

得到这个:

    {
name :'ceo'
salary: '1000000'
directs:
    {
        name: 'sally',
        salary: '100000'
    },
    {
        name: 'phil',
        salary: '100000'
    }
}

你需要

json.extract! @employee, :name, :salary
json.name :name
json.salary :salary


json.array! @employee.direct_reports do |d|
    json.name d.name
    json.salary d.salary
end