Я использую ActiveResource для анализа следующего XML:
<deploymentNotifications>
<platformTest>Todd</platformTest>
<domainTest xsi:nil="true"/>
<systemTest xsi:nil="true"/>
<production xsi:nil="true"/>
</deploymentNotifications>
Вывод для @deploymentNotifications.platformTest
- это именно то, что я ожидал;а именно, "Тодд".Вывод для трех nil-элементов, тем не менее, выглядит следующим образом:
"domainTest"=>
#<Application::DeploymentNotifications::DomainTest:0x007f7f8df7a198
@attributes={
"xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
"xsi:nil"=>"true"},
@prefix_options={},
@persisted=false>
Я предполагаю, что ActiveResource никоим образом не рассматривает xsi:nil
как особенное, но я не уверен.В идеале то, что я хотел бы закончить (будь то использование ActiveResource напрямую или через комбинацию ActiveResource и постобработки), это отображение, которое переносит нулевые элементы ввода в нулевые объекты Ruby:
#<Application::DeploymentNotifications:0x007f7f8ec6a290
@attributes={
"platformTest"=>"Todd",
"domainTest"=>nil,
"systemTest"=>nil,
"production"=>nil},
@prefix_options={},
@persisted=false>
Что-то подобноелиний.Каков наилучший способ сделать это?
Я совершенно новичок в Ruby, поэтому, если мне нужна коррекция основного курса, дайте мне знать.