Moje pytanie dotyczy tworzenia danych wyjściowych na podstawie dokumentacji pod numerem https://github.com/dam5s/happymapper, która jest widelcem happymappera przy użyciu nokogiri.Happymapper (fork) - wyjście z wielu klas
Użyłem 2 przykładów bawiących się z dokumentacją. To jest mój przykład.
xml_doc = <<EOF
<address location='home'>
<street>Milchstrasse</street>
<street>Another Street</street>
<housenumber>23</housenumber>
<postcode>26131</postcode>
<city>Oldenburg</city>
<country code="de">Germany</country>
</address>
EOF
class Address
include HappyMapper
tag 'address'
element :housenumber, Integer, :tag => "housenumber"
end
class Country
include HappyMapper
tag 'country'
attribute :code, String
content :name, String
end
outputs = Country.parse(xml_doc)
outputs.each do |output|
puts output.code
puts output.name
puts output.housenumber
end
Oczekiwany wyjście
de
Germany
23
moje wyjście
[email protected] ~/race (master●)$ ruby read_race.rb [ruby-2.4.0p0]
de
Germany
read_race.rb:49:in `block in <main>': undefined method `housenumber' for #<Country:0x0055e55facf798 @code="de", @name="Germany"> (NoMethodError)
from read_race.rb:46:in `each'
from read_race.rb:46:in `<main>'
Być może musisz dodać 'element: housenumber, Integer,: tag =>" housenumber "' do klasy 'Country'. Ponieważ nie zdefiniowałeś metody o nazwie "numer domu", możesz z niej zadzwonić. –
Nie jest w 100% pewne, że dobre przykłady nie są do końca jasne. W jednym z przykładów tworzą funkcję w klasie, ale dotyczy to elementów has_many. – sayth