我正在编写一个 rails web-hooks 服务使用者,它接收嵌套 XML 中的批量对象,并且需要在每个节点中保存某些字段。当 XML 数据点击我在 HooksController 中的创建操作时,XML 会自动转换为如下所示的散列。
Parameters: {"Events"=>{"RecordSet"=>{"Record"=>[{"SENDER_LAST_NAME"=>"Smith",
"SENDER_MIDDLE_NAME"=>"S.", "EVENT_ID"=>"3904", "SENDER_FIRST_NAME"=>"John",
"EVENT_TYPE"=>"Contact", "SENDER_MSISDN"=>"0723xxxxxx", "EVENT_DATE"=>"2011-05-31"},
{"SENDER_LAST_NAME"=>"Simiyu", "SENDER_MIDDLE_NAME"=>"N.",
"EVENT_ID"=>"2447", "SENDER_FIRST_NAME"=>"Steve", "EVENT_TYPE"=>"Tag",
"SENDER_MSISDN"=>"0720xxxxxxx", "EVENT_DATE"=>"2011-05-31"}]}, "xmlns"=>""}}
我不想存储每个对象的所有字段,因为与哈希中的事件相对应的 ExternalEvents 模型没有哈希中的所有字段。我还想在保存之前将字段 SENDER_MSISDN 与注册用户 MSISDN 匹配。通常我会使用 Nokogiri 解析 XML,然后在循环中创建模型对象,但我不能这样做,因为 rails 会自动将其转换为哈希。我无法更改传入的 XML 的结构。我尝试寻找有关如何解决此问题的线索,但未成功。
我差点在这个上扯掉我的头发。