Ruby on Rails to_json проблема с: включать

У меня есть следующий код

@asset = Asset.first(
  :include => [
    :asset_statuses => [
      :asset_status_name, 
      {:asset_location => [
        {:asset_floor => :asset_building}
      ]}
    ],
    :asset_type => [
      :asset_category => :asset_department
    ]
  ],

(вероятно, не лучший дизайн Таблицы базы данных, но это - то, что я должен использовать),

Asset.first работы правильно и это возвращает данные правильно, но когда я пытаюсь использовать то же :include в to_json метод это перестало работать с ошибкой followings:

@asset.to_json( 
  :include => [
    :asset_statuses => [
      :asset_status_name,
      {:asset_location => [
        {:asset_floor => :asset_building}
      ]}
    ],
    :asset_type => [
      :asset_category => :asset_department]
    ] 
)

NoMethodError (undefined method `macro' for nil:NilClass):

to_json метод имеет то же :include синтаксис, как находят; я не понимаю, почему это не работает.

10
задан BryanH 13 June 2011 в 17:29
поделиться

2 ответа

В случае, если кто-то еще столкнется с причудливой проблемой, связанной с моей проблемой ... to_json также вернет эту ошибку, когда вы попытаетесь включить ассоциацию, которая не определена в модели.

23
ответ дан 3 December 2019 в 13:51
поделиться

Я думаю, что синтаксис to_json : include немного отличается.

Обычно я использую

@asset.to_json(:include => { :asset_statuses => {
                             :include => :asset_status_name}})

(и начинаю с небольшого, затем добавляю все остальное. Раздражающая схема!)

8
ответ дан 3 December 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: