2010-05-10 5 views
2

Почему я получаю циклическое исключение ссылки В Rails 3 (бета-версия 3 на 1.8.7) при вызове to_json по отношению я получаю исключение с круговой ссылкой. Сначала преобразуем это отношение в массив, а THEN вызывает to_json.Почему при вызове to_json в ActiveRecord :: Relation

код, который не:

Model.where() to_json (где модель является любая модель в вашем Rails 3 приложение)

код, который работает:..

Model.where() to_a .to_json

Это может быть воспроизведено на консоли.

Есть ли у кого-нибудь еще? Ожидается ли это?

ответ

0

Я была такая же проблема, не может исправить это, но узнал, как избежать этого, со следующим:

respond_to do |format| 
    response = @product.to_xml 
    format.xml { render :xml => response } 
    format.json { render :json => Hash.from_xml(response).to_json } 
end 

Идея заключается в том, чтобы создать формат XML-ответа, затем Hash его , затем отформатируйте его в JSON.

Этот подход дал мне больше, чем ожидалось, поскольку теперь отформатированные результаты JSON имеют точно такие же данные, как и XML-форматированные.

Смежные вопросы