to_xml and helper methods

Hi,

I have an array with objects and I want to generate an XML like:

<objects>
  <object>
       <category_id>1</category_id>
       <helper-method>result 1</helper-method>
  </object>
  <object>
       <category_id>2</category_id>
       <helper-method>result 2</helper-method>
  </object>
</objects>

The helper method generates some urls and it needs as an arguments the
object.

What would be a proper way to include the result of that method call?

I guess building the xml manually could work, but that means I would
have to manually enter every object variable.

modify the to_xml method of your object, like so:

class MyObject < ActiveRecord::Base
  def helper_method(obj)
    "<helper-method>something-from-obj-#{obj.id}</helper-method>"
  end

  def to_xml
    xml = super
    close_tag = "</#{self.class.to_s.underscore.dasherize}>"
    xml.gsub(close_tag, " #{self.helper_method(self)}\n#{close_tag}")
  end
end

My problem is that the helper method, is a Helper(app/helpers)
Method. :slight_smile:

And I can't use it in the model. Otherwise I could have called to_xml
( :method => etc).

In your model, you should just be able to include the helper:

class MyObject < ActiveRecord::Base
  include SomeHelper
end