Хорошо, я знаю, что вы можете переопределить метод to_xml для одного экземпляра объекта ActiveRecord, и он прекрасно работает для меня. Но как мне переопределить метод to_xml для сбора объектов?
Предположим, для экземпляра модели Task я реализовал to_xml, который выглядит следующим образом.
def to_xml
super(:methods => [:tag_list], :include => {:project => {:include => {:folder => {}}}, :folder => {}})
end
Прекрасно работает, когда одна задача должна быть сериализована в XML. Но когда мой код запускается для сбора задач, как в следующем фрагменте кода
render :xml => @tasks.to_xml
Я получаю
wrong number of arguments (1 for 0)
/home/chirantan/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/array/conversions.rb:189:in `to_xml'
/home/chirantan/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/array/conversions.rb:189:in `to_xml'
/home/chirantan/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/array/conversions.rb:189:in `each'
/home/chirantan/.gem/ruby/1.8/gems/activesupport-2.3.5/lib/active_support/core_ext/array/conversions.rb:189:in `to_xml'
/var/lib/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `call'
/var/lib/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:134:in `_nested_structures'
/var/lib/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:58:in `method_missing'
/var/lib/gems/1.8/gems/builder-2.1.2/lib/builder/xmlbase.rb:31:in `tag!'
/~/blah/app/controllers/tasks_controller.rb:412:in `completed'
Как мне сделать эту работу?