Ok so what i'm trying to do is generate xml using the rails xml builder.

say you have a house and that house has several people living in it. I would have a relationship that looks like this:


class Person < ActiveRecord::Base
belongs_to :house 

end

class House < ActiveRecord::Base
has_may :people

end


Getting rails to build out some xml for the has_many relationship is pretty straight forward. for example:


xml.home do
xml.square_feet home.square_feet
home.people.each do |person|
xml.person do
xml.name person.name
xml.age person.name
end
end
end



which should output this xml

<home>
<square_feet>...</square_feet>
<person>
<name>...</name>
<age>...</age>
</person>
</home>


But in the case where you want to build out xml data for a belongs_to relationship i'm at a loss. I would have thought it would be even easier but that doesn't seem to be the case. Here is how I thought it would work.


xml.person do
xml.name person.name
xml.age person.age
xml.home do
xml.square_feet person.home.square_feet
end
end


which should output this xml

<person>
<name>...</name>
<age>...</age>
<home>
<square_feet>...</square_feet>
</home>
</person>


However for some reason person.home.square_feet does not work in the xml builder despite the fact that it works in the console.

I invite anyone with suggestions on how to make this work to comment or post links otherwise I will hopefully be posting a follow up article on how I eventually figured it out.

Resolved Post

Leave a Reply