代码之家  ›  专栏  ›  技术社区  ›  alavni shubham

如何从rails中的序列化对象跳过关系散列?(gem Netflix/fast_jsonapi)

  •  -1
  • alavni shubham  · 技术社区  · 6 年前

    如何从序列化对象(gem Netflix/fast_jsonapi)中跳过关系散列?

    {
      "data": {
        "id": "3",
        "type": "movie",
        "attributes": {
          "name": "test movie",
          "year": null
        },
        "relationships": {
          "actors": {
            "data": [
              {
                "id": "1",
                "type": "actor"
              },
              {
                "id": "2",
                "type": "actor"
              }
            ]
          },
          "owner": {
            "data": {
              "id": "3",
              "type": "user"
            }
          }
        }
      }
    }
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   Sumanth Madishetty    6 年前

    您可以使用rails except method从散列中移除属性,在您的案例中可以使用

     data_hash = {"data": {"id": "3","type": "movie","attributes": {"name": "test movie","year":''},"relationships": {"actors": {"data": [{"id": "1","type": "actor"},{"id": "2","type": "actor"}]},"owner": {"data": {"id": "3","type": "user"}}}}}
     data_hash[:data].except!(:relationships)
    

    输出如下

    {:id=>"3", :type=>"movie", :attributes=>{:name=>"test movie", :year=>""}}
    

    以及 data_hash

    {:data=>{:id=>"3", :type=>"movie", :attributes=>{:name=>"test movie", :year=>""}}}