Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Jinzhu
@zhangjinzhu
VIP
NO. 252 / 2011-11-24

杭州
11 Topics / 214 Replies
17 Followers
0 Following
2 Favorites
GitHub Public Repos
  • copier 5862

    Copier for golang, copy value from struct to struct and more

  • now 4529

    Now is a time toolkit for golang

  • configor 1781

    Golang Configuration tool that support YAML, JSON, TOML, Shell Environment

  • gorm 650

    GORM V1, V2 moved to https://github.com/go-gorm/gorm

  • inflection 511

    Pluralizes and singularizes English nouns

  • configure 89

    My dot files for Emacs, Openbox, XMonad, VIM, Golang, Zsh/Bash, tmux, URXVT, ArchLinux, Git, Ruby...

  • grb 41

    A tool to simplify working with remote git branches

  • clickhouse-go 4

    Golang driver for ClickHouse

  • jinzhu.github.com 2

    My Github Page

  • super-labeler-action 2

    A superpowered issue and pull request labeler for Github Actions.

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 要小心使用 Where ("xxx NOT IN (?)", array) 。。。 at October 31, 2013

    @luikore @JeskTop 需要自己检查的什么的最讨厌了。。。。。。。。。

  • 用 Go 写了个类似 ActiveRecord 的 ORM 库, gorm at October 30, 2013

    @fredwu 869 行的测试呢。。。。占总代码数的 42%.........

  • 用 Go 写了个类似 ActiveRecord 的 ORM 库, gorm at October 30, 2013

    @fredwu 测试完了,给 bug 报告哈。。。。

  • 用 Go 写了个类似 ActiveRecord 的 ORM 库, gorm at October 30, 2013

    @ashchan 要不我怕我自己记不住。。。。。。。。。。。。。

  • 用 Go 写了个类似 ActiveRecord 的 ORM 库, gorm at October 30, 2013

    刚刚优化了下 first_or_initialize, first_or_create 的功能。。。

    我们在建一个对象的时候经常性的会有这种问题,例如:

    根据邮箱查询一个用户,如果查到的话就找出来,如果没有查到就创建他,并且把本次请求的 IP 记录下来

    这是个经常性我写起来感觉很恶心的地方,用 Rails 也要这样子写:

    user = User.where(email: '[email protected]').first_or_create
    if user.from_ip.blank?
      user.update_attribute(:from_ip, "111.111.111.111") // 会有3条SQL, 查询,创建,更新
    end
    

    并且还不太贴合要求,最贴合要求的实现应该是

    user = User.where(email: '[email protected]').first_or_initialize
    if user.new_record?
      user.from_ip = "111.111.111.111"
      user.save
    end
    

    经过我的改进版的 gorm 后,可以这样子写了:

    db.Where(User{Email: "[email protected]"}).Attrs(User{FromIp: "111.111.111.111"}).FirstOrCreate(&User{})
    

    感觉用起来帅多了。。。

  • 用 Go 写了个类似 ActiveRecord 的 ORM 库, gorm at October 29, 2013

    刚刚加上了类似 rails first_or_initialize, first_or_create 的功能,用起来更爽啦:)

  • 程序员不易找对象的原因 at August 27, 2013

    其实我想表达的是

    你从来不出门和妹子打招呼,难道让妹子来和你打招呼啊。。。。
    即使被动型,起码也要往有妹子的地方钻才有妹子啊。。。。。。
    有没有女朋友和你是程序员有什么关系。。。。。。。。。。。。
    
  • 程序员不易找对象的原因 at August 27, 2013

    我的家乡有个古老的传说,谁家的孩子找不到媳妇,去服装厂干几个月就找到了。。。。

  • 一条还算平滑的 Vim 学习路 at August 21, 2013

    @hxtheone 多少年前就支持字母了。。。。只是之前不是首选项,为了让你可以通过字母来搜索链接

    不过现在的话,如果你写大写字母的话,还是可以搜索链接的(支持拼音哦)。。。

    我感觉这个功能挺高端,大气,上档次的。。。。。XD

  • 一条还算平滑的 Vim 学习路 at August 21, 2013

    并且为了充分照顾到了你看动作片网站,还特有 image_only 模式,让你可以只看图,image_toggle 可以让你关掉图片,专注的看小说。。。。。

  • 一条还算平滑的 Vim 学习路 at August 21, 2013

    // 打个广告

    用 vimium 感受 vim 快捷键,还不如用 vrome 呢 ......

    http://github.com/jinzhu/vrome

  • 放眼望去都是 Ubuntu,有用 Arch 的玩家么? at August 13, 2013

    @terrywang 用了多年 arch .... 习惯了,感觉 apt 各种不好用。。。。不过鉴于 arch 开发者的不负责的更新。。。。才换到 ubuntu

  • 放眼望去都是 Ubuntu,有用 Arch 的玩家么? at August 13, 2013

    @5long 嗯,看起来还不错。。。不过还是纯 shell 更 happy...无依赖... 主要是因为是我自己定制的。。。。XD

  • 放眼望去都是 Ubuntu,有用 Arch 的玩家么? at August 13, 2013

    @terrywang 经过高端,大气的 shelll 包装 , 小伙伴们用 apt 也可以很 happy...

    function sp {
      if [ -f '/usr/bin/yaourt' ];then
        sudo yaourt $@
      elif [ -f '/usr/bin/pacman' ]; then
        sudo pacman $@
      elif [ -f '/usr/bin/apt-get' ]; then
        if [ "$1" = "-Ss" ]; then
          if [ -f '/usr/bin/aptitude' ]; then
            aptitude search $(echo $@ | sed 's/-Ss\?\s*//')
          else
            apt-cache search $(echo $@ | sed 's/-Ss\?\s*//')
          fi
        elif [ "$1" = "-Qs" ]; then
          apt-cache search -installed $(echo $@ | sed 's/-Qs\?\s*//')
        elif [ "$1" = "-S" ]; then
          sudo apt-get install $(echo $@ | sed 's/-S\?\s*//')
        elif [ "$1" = "-Suy" ]; then
          sudo apt-get update
          sudo apt-get dist-upgrade
        elif [ "$1" = "-Su" ]; then
          sudo aptitude update
        elif [ "$1" = "-Rsn" ]; then
          sudo apt-get remove $(echo $@ | sed 's/-Rsn\?\s*//')
        elif [ "$1" = "-Qi" ]; then
          apt-cache show $(echo $@ | sed 's/-Qi\?\s*//')
        elif [ "$1" = "-Ql" ]; then
          dpkg -L $(echo $@ | sed 's/-Ql\?\s*//')
        elif [ "$1" = "-Qo" ]; then
          dpkg -S $(echo $@ | sed 's/-Qo\?\s*//')
        elif [ "$1" = "-Qp" ]; then
          keyword=$(echo $@ | sed 's/-Qp\?\s*//')
          apt-cache pkgnames | sort | xargs apt-cache policy | awk '/^[^ ]/ { split($1, a, ":"); pkg = a[1]; installed="[i] ";}
             /Installed/ {version=$2;if (match(version,/none/)){installed="[n] ";version=""}}
             /Candidate/ {if (version=="") { version=$2 } else if (version!=$2) {version="* "$2} }
             /Packages/ {printf("%s%-40s %-50s %s   %s\n", installed, pkg, $2, $3, version)}' |grep $keyword
        else
          if [ -f '/usr/bin/aptitude' ]; then
            sudo aptitude $@
          else
            sudo apt-get $@
          fi
        fi
      fi
    }
    
    
  • Rails 的一个坑 - order at June 11, 2013

    用的 3.1 测试的 @Victor

  • Rails 的一个坑 - order at June 10, 2013

    @Victor 可能是版本原因,在我这里是 ...

    SELECT users.* FROM users WHERE users.id IN (2, 3)

  • Rails 的一个坑 - order at June 09, 2013

    User.where(:id => [1,2]).where(:id => [2,3])

    猜猜结果是啥。。。

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 11, 2013

    @metal 感谢建议... XD

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 11, 2013

    @heyuan 我怕大家把我们当成广告....结果木人理了...

    @lgn21st 必须可以啊...

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 11, 2013

    已收录...谢谢!

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 11, 2013

    @luikore 小卡片,有难度啊......

    @hlxwell 麦哥,回来一起体验吧...

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 10, 2013

    @kgen +10086

    @doitian 效率高->完成工作时间短->玩的多?

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 10, 2013

    嗯,算是变相赞助旅游吧...

    @Zernel 好的,我们先测试下整个流程.... XD

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 10, 2013

    #5 楼 @kgen 嗯,我们也在考虑这个,主要是今天突然决定这周日出发(趁还年轻,再疯狂一次...)...现在住宿,工作的地方都还没有定下来,所以还在找各种攻略中...

    工作效率还好,主要是最近一个月工作内容差不多都确定了,死活都要完成这些,只有提高效率才能玩的更 hi.......

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 10, 2013

    #2 楼 @bhuztez 我们在想,要不宾馆,要么青年旅馆,要不租短期房,还在考虑各种方案中...

  • 六人小组去*厦门*休闲工作一个月,有推荐 / 赞助工作场所,或者想一起讨论问题玩的么? at May 10, 2013

    @fresh_fish 必须说是好老板啊,要不怎么会有下一次机会呢.... XD

  • 流水线式的操作,求推荐授权相关的 gem at May 02, 2013

    流程差不多下面这样,流程上和 cancan 没有啥关系。。。

    class Order
      def 只允许用户A
        self.当前操作用户 == 用户A
      end
    
      event :物品准备打包 do
        transitions :to => :物品准备打包, :from => [:受理订单], :guard => :只允许用户A
      end
    end
    
  • 流水线式的操作,求推荐授权相关的 gem at May 02, 2013

    难道你不记录订单的状态变化么?如果记录的话,

    你要记录从”受理订单“ -> “物品准备打包”是由谁批准的吧?

    如果你知道是谁批准的了,在 state_machine 加个校验不是分分钟的事么

  • ubuntu at May 02, 2013

    #9 楼 @luikore ye you ke neng ba.... ;)

  • Prev
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English