В этом случае похоже, что ваша проблема вызвана странными (возможно, противоречивыми) данными. Попытайтесь увидеть (в вашей консоли) объект, который вызвал проблему - в вашем контроллере вы использовали какой-то конкретный идентификатор. Убедитесь, что Category.find(THIS_IS).products.to_xml
также выдает ошибку.
Проверьте, может ли один Продукт вернуть что-то полезное в ответ на .to_xml.
Вы часто будете сталкиваться с подобными проблемами. Вы должны научиться их отлаживать.
Прежде всего, следите за следом. Вы, вероятно, видите это в своем веб-браузере, но все исключения обычно также помещаются в ваш log / development.log (зависит от среды).
В журнале разработки вы видите, что SQL-запросы выполняются до появления ошибки. Иногда они могут помочь вам найти, что не так. В этом случае вы можете проверить, какой тип модели был выбран SELECT непосредственно перед ошибкой. (это будет просто подсказка, а не решение)
В обратном следе вы смотрите файлы, которые вы отредактировали. Обычно ошибка будет в вашем коде. Если ваш код выглядит нормально, возможно, вы захотите увидеть другие файлы, указанные в обратном следе. Чтение кода Rails может дать вам некоторые подсказки. Иногда.
И вопрос: не смешались ли вы со свойством type в ваших моделях? Если да, то попробуйте переименовать такой атрибут во что-то еще.
Мы не можем дать вам более точный ответ. Я надеюсь, что вы найдете проблему. Кроме того, прежде чем начать исправлять ошибку, попробуйте написать для этого модульный тест: проверьте, не вызывает ли вызов .to_xml для одной из ваших моделей в тестовой базе данных исключение.