我需要从使用soap获取交付点列表的送货公司获取一些信息。我完成了我的类调用并执行soap请求,这是响应的格式:
{
:error_message=> "Code retour OK",
:liste_point_retrait =>
[
{
:horaires_ouverture_dimanche => "00:00-00:00 00:00-00:00",
:poids_maxi => "20000",
:conges_partiel => false,
:horaires_ouverture_vendredi => "09:00-12:00 14:30-18:00",
:acces_personne_mobilite_reduite => false,
:horaires_ouverture_jeudi => "09:00-12:00 14:30-17:30",
:nom => "BUREAU DE POSTE SAINT LEU D ESSERENT BP"
},
{
:horaires_ouverture_dimanche => "00:00-00:00 00:00-00:00",
:poids_maxi => "20000",
:conges_partiel => false,
:horaires_ouverture_vendredi => "09:00-12:00 14:00- 17:00",
:acces_personne_mobilite_reduite => true,
:horaires_ouverture_jeudi => "09:00-12:00 14:00-17:00",
:nom => "BUREAU DE POSTE PRECY SUR OISE BP"
},
{
:horaires_ouverture_dimanche => "00:00-00:00 00:00-00:00",
:poids_maxi=> "20000",
:conges_partiel => false,
:horaires_ouverture_vendredi => "08:30-12:00 14:30-17:00",
:acces_personne_mobilite_reduite => false,
:horaires_ouverture_jeudi => "08:30-12:00 14:30-17:00",
:nom => "BUREAU DE POSTE SAINT MAXIMIN BP"
}
],
:error_code=> "0",
:qualite_reponse=> "1",
:ws_request_id => "01587849465dc81b5eb19996cdd5d1cae4ead7766316f12e4fbfa6e86037caae"
}
现在的问题是我不喜欢我目前获取信息的方式在我的视图中显示它,例如,如果@points包含此哈希我在我的代码中使用它:
<% @points[:liste_point_retrait].each do |point| %>
<%= point[:nom] %>
<% end %>
有没有更好的方法来处理这种反应?我想有可能做这样的事情:
<% @points.each do |point| %>
<%= point.name %>
<% end %>
答案 0 :(得分:1)
如果您只想要:liste_point_retrait
键内的数据,那么只使用该键?:
@points = @points[:liste_point_retrait]
然后你可以继续使用
来遍历它<% @points.each do |point| %>
<%= point[:nom] %>
<% end %>
如果您希望point.nom
使用point[:nom]
,则可以从每个Hash元素创建OpenStruct
。那就是:
@points.map! { |p| OpenStruct.new(p)
我看到你的例子中有name
vs nom
,我不确定这是否有意。如果是这样,您需要自己翻译所有这些密钥。