Я использую serialize_with_options ( http://www.viget.com/extend/simple-apis-using- serializewithoptions / ) в проекте rails и использовали именованные блоки для рендеринга в соответствии с примером на связанной странице:
class Speaker < ActiveRecord::Base
# ...
serialize_with_options do
methods :average_rating, :avatar_url
except :email, :claim_code
includes :talks
end
serialize_with_options :with_email do
methods :average_rating, :avatar_url
except :claim_code
includes :talks
end
end
Затем я могу вызвать конфигурацию второго блока с помощью @ Speaker.to_xml (: with_email). Это работает хорошо, однако я хотел бы выяснить, как вызвать этот блок, когда у меня есть массив объектов. Например, не работает следующее:
@speakers = Speaker.all
@speakers.to_xml(:with_email)
Что возвращает ошибку «TypeError: невозможно дублировать символ». Для меня это имеет смысл, поскольку Array не был настроен на использование serialize_with_options. Как мне передать этот тег отдельным объектам динамика при запуске .to_xml и отобразить все динамики: with_email?