Когда я рендерил XML с предложением: include для имеющейся у меня полиморфной ассоциации, он не работает. Я получаю XML, возвращающий объектные указатели вместо реальных объектов, например:
<posts>
#<Comment:0x102ed1540>#<Comment:0x102ecaa38>#<Comment:0x102ec7fe0>#<Comment:0x102ec3cd8>
</posts>
Все же as_json работает! Когда я отображаю JSON с предложением: include, ассоциации отображаются правильно, и я получаю что-то вроде:
posts":[
{"type":"Comment","created_at":"2010-04-20T23:02:30-07:00","id":7,"content":"fourth comment"},
{"type":"Comment","created_at":"2010-04-20T23:02:26-07:00","id":6,"content":"third comment"}]
Мой текущий обходной путь - использование XML Builder, но в долгосрочной перспективе я не слишком доволен этим. Кто-нибудь случайно знает об этой проблеме? Я вроде как в уловке-22, потому что, хотя XML не отображает ассоциации, as_json не отображает в кошерном формате json (возвращает массив, а не список хешей, как должен делать надлежащий json) и десериализатор I ' Использование m на стороне клиента потребовало бы модификации для правильного анализа json.
edit Я использую 2.3.5 - также я использую гем has_many_polymorphs для polymorphic, имеет много: через, что может вызывать проблему ...
Модель состоит в том, что у меня есть видеовстречи, и в каждом видеовстрече есть много сообщений, которые полиморфны комментариям, фотографиям и т. Д.
Код контроллера для XML:
format.xml {render: xml => @ hangouts.to_xml (: include =>: пользователи,: методы =>: сообщения)}
Код для JSON аналогичен (в модели):
def as_json (параметры)
супер (: включить =>: пользователи,: методы =>: сообщения)