Rails JBuilder получает Called ID для нуля

Я пытаюсь использовать драгоценный камень jbuilder для форматирования вывода json.

Контроллер

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

дерево.json.jbuilder

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

Протестируйте, используя URL-адрес:

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

person Reddirt    schedule 12.02.2013    source источник


Ответы (1)


кажется, вы не определяете @location в коде, который вы разместили.
вам следует перебирать ваши местоположения, jbuilder позволяет вам сделать это, например, так:

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

см. документы, если вместо этого вам нужен плоский массив.

person kr1    schedule 13.02.2013