rails jbuilder获得nil的被叫id

时间:2013-02-12 22:32:54

标签: ruby-on-rails-3 jbuilder

我正在尝试使用jbuilder gem来格式化json输出。

控制器

class LocationsController < ApplicationController
def tree
  @locations = Location.all
end

tree.json.jbuilder

Jbuilder.encode do |json|
  json.id @location.id
  json.name @location.name
end

使用网址测试:

http://localhost:5000/locations/tree.json

结果:

Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
Extracted source (around line #2):

1: Jbuilder.encode do |json|
2:   json.id @location.id
3:   json.name @location.name
4: end

1 个答案:

答案 0 :(得分:0)

您似乎没有在您发布的代码中定义@location 你应该迭代你的位置, jbuilder 让你这样做:

Jbuilder.encode do |json|
  json.locations @locations do |location|
    json.id location.id
    json.name location.name
  end
end

如果您想要平面阵列,请参阅docs