CircularReferenceError при сериализации экземпляра ActiveRecord (полученного с помощью ThinkingSphinx) в JSON - PullRequest
0 голосов
/ 28 сентября 2010

Я пытаюсь сериализовать экземпляр моей модели ActiveRecord в JSON (используя "render: json => @entities" или "@ entity.to_json"), но я всегда получаю CircularReferenceError ("ActiveSupport :: JSON :: Encoding:: CircularReferenceError (объект ссылается на себя) ").Это происходит только тогда, когда запросы к экземплярам ActiveRecord выполняются с помощью ThinkingSphinx.Сериализация to_xml работает отлично.Это известная проблема?Я использую последние Rails 3 и ThinkingSphinx.

Ответы [ 3 ]

2 голосов
/ 19 января 2011

Мышление Sphinx & Rails 3 и JSON не работали в моей системе, пока я не использовал следующее:

@entities = Entity.find(:all) 
render :js => @entities.as_json
1 голос
/ 01 октября 2010

"render: json => @ entity.to_a" решает эту проблему.

0 голосов
/ 07 мая 2012

У меня тоже недавно возникла эта проблема, затем я меняю ее, как в процессе

render :json => @entities.to_a.to_json(:only => [:entities's attributes], :methods => [:entities's methods])

и все работает.

...