• 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
  • 相关阅读:
    url路由配置及渲染方式
    django类视图介绍与类视图装饰器
    什么是数据类型
    python代码的编写和运行
    python环境搭建
    python教程(目录)
    编程语言概念
    面向对象入门
    编程语言
    Tornado框架实现图形验证码功能
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5864585.html
Copyright © 2020-2023  润新知