使用jbuilder时如何显示对象的属性?
How to display attributes of object when using 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
我已经尝试了代码第一部分的几次迭代,但我不断地在 rest 调用中看到以下内容,例如 http://localhost:3000/employees/1.json
:
[
{
name: 'sally',
salary: '100000'
},
{
name: 'phil',
salary: '100000'
}
]
得到这个:
{
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
确保你在相应的控制器中有 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
我想展示一个员工,他们的所有报告如下:
{
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
我已经尝试了代码第一部分的几次迭代,但我不断地在 rest 调用中看到以下内容,例如 http://localhost:3000/employees/1.json
:
[
{
name: 'sally',
salary: '100000'
},
{
name: 'phil',
salary: '100000'
}
]
得到这个:
{
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
确保你在相应的控制器中有 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