• 想请教大家一个问题。 at 2018年07月21日

    假如你要更新的字段名依次是 %i(c1 c2 c3 c4 c5)

    AA.transpose.map { |date| %i(c1 c2 c3 c4 c5).zip(date).to_h}
    # [
    #  {:c1=>1, :c2=>:a, :c3=>:q, :c4=>:z, :c5=>9},
    #  {:c1=>2, :c2=>:b, :c3=>:w, :c4=>:x, :c5=>8}, 
    #  {:c1=>3, :c2=>:c, :c3=>:e, :c4=>:c, :c5=>7},
    #  {:c1=>4, :c2=>:d, :c3=>:r, :c4=>:v, :c5=>6},
    #  {:c1=>5, :c2=>:e, :c3=>:y, :c4=>:b, :c5=>5}
    # ]
    

    剩下的想用什么姿势来更新数据就看你心情了,反正也就一行代码

  • 新公司用的 Ruby,应该也有很多 Ruby 很好的同事吧,为什么不试着找他们

  • rails 版本问题 at 2018年07月19日

    在项目目录下用 bundle exec rails -v

  • 发现一个分页组件的 bug at 2018年07月19日

  • 简单粗暴:给当前用户 /Library/Ruby/Gems 这个目录的权限,或者直接 sudo

    不想折腾:按 Wiki 里面的,用 rbenv 重装一个 Ruby,一劳永逸

    想坚持用 brew 安装的 ruby 的话,可能你还需要一个 chruby

  • 呃 你是怎么装的 Ruby,用的系统自带的么?为什么 GEM_PATH 会设置到这个奇怪的地方

  • Crystal 程序结构 at 2018年07月14日

    好久没看到 Crystal 的帖子了 先无脑点赞再看

  • OpenResty

  • Rails 并发问题 at 2018年07月13日
    1. 查查请求平均响应时长,需要多少线程是估算出来的

    2. 线程都已经 100 了,pool 5 是什么配置,没收到数据库连接分配超时的报错么?

    3. 加线程不是万能药,线程太多导致频繁的资源调度,反而增加了消耗(32 就已经是我用过的最大值了)

    4. 加线程不是万能药,但是加机器是,一台不行,那就两台,反正是抢购,用完释放就完了

  • http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for

    你的所有疑问都写在文档里

    简单的说,传 symbol 或者 string 就相当于 Rails 自己帮你执行了 Article.new

  • Ruby 正则的问题 at 2018年07月03日

    小括号是正则表达式的关键字

  • Ruby 内联私有方法与原理 at 2018年07月03日

    之前这样用过,不过真没想到背后的原理是这样

    顺便学走一招 --dump parseTree 👏

  • 看 LZ 说的是 『类似刀片服务器这样的设备』,应该是硬件性能可以满足,但是系统是特别定制的。场景略小众,估计玩过的人不多,看上去难点在 Ruby 环境的准备上,这步成功了基本就等于成功 95% 了

    不过这种场景下迭代应该不会很频繁吧?用 Rails 会不会有点重了,它的内存占用对这类设备来说可能是一个不能忽略的开销

  • 先看 Rack,再有针对的去研究 Rails 里面用了些啥黑魔法

  • Ruby Docker with jemalloc at 2018年06月21日

    我不是对比容器内存占用(docker stats),是通过宿主机 htop 查看对应进程的内存占用,应该没毛病吧

    不过也许是我这负载不够高,所以没体现出来

  • Ruby Docker with jemalloc at 2018年06月21日

    我上次问过一样的问题 据 @lithium4010 说他是用 ruby:2.5.1-alpine 和 2.4.1 比的

    我测试的时候,都用 2.5.1 的情况下,alpine 和 debian 耗内存差不多

  • 存储网络图片 at 2018年06月18日

    你在浏览器里能访问是因为你 F Q 了,但是你的 ruby 代码并没有,于是你的请求被伟大的 GFW 拦掉了

  • 存储网络图片 at 2018年06月18日

    直接在命令行里 curl 这个图片的 url,有报错么

  • cd 到一个你有权限的目录去执行,或者修改当前目录的权限

  • 你没有当前目录的权限啊

  • extract_options! 实现的疑问 at 2018年06月16日

    我觉得就得这样写才对呀

    你不需要非得把 Array#extract_options!Hash#extractable_options? 放在一起来讨论,Hash#extractable_options? 也可能在其他场景下被调用,它具体做什么对调用者而言是不 care 的,可能很简单也可以很复杂,只是这里碰巧只有一句 instance_of?(Hash)

    所以你问 Array#extract_options! 为什么不直接使用 instance_of?(Hash)?因为对于 Array 来说,它不需要关心 Hash#extractable_options? 到底做了什么判断,于它而言这只是一支 API,能返回它想要的结果就行了。万一有一天 Hash#extractable_options? 的代码发生了变动,它自己也不需要做任何改动

    相反,如果使用 instance_of?(Hash),那反而为以后多埋下了一个陷阱。请时刻记得行为守则 —— DRY

  • 环境证书问题,怎么解决我布吉岛,因为你用的 Windows

  • 大多数情况下,并不为啥,只是一个选择或喜好

    只有到了具体的场景里面再去讨论 MongoDB or Mysql 才是有意义的

  • https://github.com/ctran/annotate_models

    和你想的相反,那个是根据数据库字段生成的,就是给人看的,数据库的字段是 migration 生成的

  • 我来提个案(可能是馊的):OpenResty + Kafka + elasticsearch + Kibana

    好像是要牵扯很多……

  • 关于权限控制的问题 at 2018年06月14日

    pundit、cancancan 核心是为开发者提供一套集中的、有约定的权限管理机制,避免大家在之后的开发中『自由发挥』导致后期权限根本无法管理

    如果你能很好的保证你现在这套机制不会成为以后的障碍或者说这个项目不存在多人协作带来的问题,那么,开心就好 ~

  • 这篇文章最初是针对 Rails 4 写的,发现很多内容已经过时了

    现已按 Rails 5 的情况更新了一下,以免误人子弟 😅

  • 虽然我用不上,但还是支持一下

    Go 版本的不需要装环境啊 ~ 不过 那个 Go 版本的作者好像没有 release 编译好的文件,大概也是懒得弄了

  • COPY 完成的那一步有生成一层中间镜像

    直接 run 那个镜像,手动去执行下命令,看看到底发生了什么,感觉是你的镜像中却了什么东西

    另外,部署用的镜像建议加上 --deployment 或者 --frozen

  • 我这边几个指向 github 的 gem,并没有遇到你说的问题

    而且看上去你在 Gemfile 里仍旧使用着 git://