Сериализация с блоками конфигурации параметров

Я использую 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?

8
задан Tron 9 June 2011 в 18:05
поделиться