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: :slight_smile:](https://emoji.discourse-cdn.com/twitter/slight_smile.png?v=12)
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