Tengo una respuesta hash que se ve así.

{
    "count": 1,
    "filters": {
        "status": [
            "FINISHED"
        ]
    },
    "competition": {
        "id": 2015,
        "name": "Ligue 1",
    },
    "matches": [
        {
            "id": 296861,
            "score": {
                "winner": "HOME_TEAM",
                "fullTime": {
                    "homeTeam": 4,
                    "awayTeam": 1
                },
            "homeTeam": {
                "id": 523,
                "name": "Olympique Lyonnais"
            },
            "awayTeam": {
                "id": 528,
                "name": "Dijon Football Côte d'Or"
            }
        }
    ]
}

Me gustaría iterar sobre él y guardar los valores seleccionados en el modelo asociado. Por el momento, solo puedo iterar sobre una clave hash particular como esta después de obtener la respuesta de la API.

match_array = response["matches"]
match_array.each do | value |
  MatchScore.create(winner: value["score"]["winner"])
end

Lo que quiero es poder iterar sobre el hash de respuesta y guardar un registro mientras se pasan valores de otras claves hash. Por ejemplo;

MatchScore.create(winner: value["score"]["winner"], competition_id: competition[:id])
0
Hakeem Baba 29 ago. 2020 a las 03:15

1 respuesta

La mejor respuesta

Puedes usar response["competition"]["id"]

1
max pleaner 29 ago. 2020 a las 01:32