2015-07-14 1 views
0

J'ai une structure json que je dois construire en fonction des paramètres url fournis par un client. Actuellement, j'ai construit la structure json en utilisant Jbuilder.encode mais ça commence à poiluer. Comment puis-je créer des objets ruby ​​afin de les convertir en json en fonction de leur initialisation? Ci-dessous, vous trouverez la structure json complète que je voudrais capturer dans les modèles ruby ​​/ poros (simples objets rubis anciens).Comment concevoir un objet équivalent ruby ​​pour cette structure json

{ 
    "query": { 
     "filtered": { 
      "filter": { 
       "bool": { 
        "should": [ 
         { 
          "query": { 
           "query_string": { 
            "query": "tablet", 
            "fields": [ 
             "standard_analyzed_name", 
             "standard_analyzed_message" 
            ] 
           } 
          } 
         }, 
         { 
          "term": { 
           "username": "feedmatic" 
          } 
         } 
        ], 
        "must": [ 
         { 
          "terms": { 
           "status_type": [ 
            "3", 
            "4" 
           ] 
          } 
         }, 
         { 
          "range": { 
           "created_on": { 
            "gte": 20140712, 
            "lte": 1405134711 
           } 
          } 
         } 
        ] 
       } 
      } 
     } 
    } 
} 

Répondre

0

Hmm je ne suis pas vraiment sûr de Poro de, mais une chose que j'ai vu est que lorsque la structure commence à se velue est de faire une méthode qui retourne la représentation de hachage de ce que vous voulez montrer . Avez-vous essayé de créer une méthode de requête qui renvoie un hachage avec cette structure, puis l'appelez dans un modèle jbuilder? Il existe une méthode .attributes pour les rails qui retourne un hachage avec les attributs, mais vous devrez examiner comment l'utiliser avec un PORO et si cela fonctionne dans ce but.