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
  • 相关阅读:
    IT面试技巧(2)
    mySQL学习入门教程——4.内置函数
    weight decay (权值衰减)
    c++读取文件目录
    caffe 卷积层的运算
    一个物体多个标签的问题
    python caffe 在师兄的代码上修改成自己风格的代码
    caffe 细节
    vim让一些不可见的字符显示出来吧
    python 读写文件
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5864585.html
Copyright © 2011-2022 走看看