zoukankan      html  css  js  c++  java
  • jbuilder的set!方法重构接口

    https://github.com/rails/jbuilder  的set!方法重构接口,

    因为grape没法使用 jBuilder 的缓存,所以直接用 Rails 写 API

    (1)多个图片

    images: {
      poster: {
        url: "http://r4.ykimg.com/0510000057CD17166714C04FDC0628CE",
        md5: "ee63b0a11cb1e39331d5ce11d38fceec"
    },
      right_top_corner: {
        url: "http://r1.ykimg.com/0510000057CEA19C6714C063660BEB44",
        md5: "e50d520de494538d4633086d46845a81"
      }
    },

    原来的方法为

     json.images do
        component.pictures.each do |p|
          if p.name == 'poster'
            json.poster do
              json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
              json.md5 p.md5
            end
          end
          if p.name == 'icon'
            json.icon do
              json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
              json.md5 p.md5
            end
          end
          if p.name == 'background'
            json.background do
              json.url "http://r#{rand(4) + 1}.xxx.com/#{p.url}"
              json.md5 p.md5
            end
          end
      end 
    end

    精简后为

      json.images do
        component.pictures.each do |p| 
          json.set! p.name do
            json.set! :url, "http://r#{rand(4) + 1}.ykimg.com/#{p.url}"
            json.set! :md5, p.md5
          end 
        end 
      end 

    (2)hints 是一个 hash,遍历 Hash 的文档 http://ruby-doc.org/core-2.3.1/Hash.html#method-i-each

    hint: {
      left: "left",
      right: "111"
    },

    精简前

      json.hint do
        if component.hints.key?("left")
          json.left component.hints["left"]
        end 
        if component.hints.key?("center")
          json.center component.hints["center"]
        end 
        if component.hints.key?("right")
          json.right component.hints["right"]
        end 
      end

    精简后

      json.hint do
        component.hints.each do |key,value|
          json.set! key, value
        end
      end
  • 相关阅读:
    RAID卡简介
    参考资料
    Linux中将命令运行结果放到文件中的方法
    C# 语言基础
    Visual Studio 快捷键(收藏)
    深度学习中的优化算法
    Pytorch之线性回归
    Pytorch之Tensor学习
    解决Andaconda创建虚拟环境出现的“无法定位程序输入点”的问题
    Autocad二次开发中的XData
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5864585.html
Copyright © 2011-2022 走看看