Я использую 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)
, который возвращает ошибку «Ошибка типа: невозможно дублировать символ». Это имеет смысл для меня, так как массив не был настроен для использования serialize_with_options. Как я могу получить этот тег для передачи отдельным объектам динамиков при запуске .to_xml и рендеринга всех динамиков: with_email?