• 网络辅导怎么想都不靠谱,有问题你可以论坛上发帖问,或者在 Ruby 的基友群里面问就好了

    工作上最好的学习途径还是虚心跟着身边的高手学,因为有足够的时间呆在一起,比去买什么视频教程都有效多了

  • 完全的统一编码风格是不可能的,这辈子都不可能的,rubocop 或者 codeclimate 约束一下就挺好了

    关于第二点,你表述得略微有些极端了,有点一刀切的感觉。你们遇到的问题是系统设计带来的问题,也是大多系统都会遇到的,解决方式其实有很多

    最简单的,写更新代码前,先跟对方沟通一下,或者结队编程,最起码 code review 一下

    其次,使用 validate/callback 就能简单处理掉的场景,还是先考虑把 B 模型写得更健壮些吧

    最后,就是你说的通过接口/消息去更新了,在避免犯错上确实很有效,相应的就是成本高了些

  • 假如你要更新的字段名依次是 %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 July 19, 2018

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

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

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

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

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

  • Crystal 程序结构 at July 14, 2018

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

  • OpenResty

  • Rails 并发问题 at July 13, 2018
    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 July 03, 2018

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

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

    顺便学走一招 --dump parseTree 👏

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

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

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

  • Ruby Docker with jemalloc at June 21, 2018

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

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

  • Ruby Docker with jemalloc at June 21, 2018

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

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

  • 存储网络图片 at June 18, 2018

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

  • 存储网络图片 at June 18, 2018

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

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

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

  • 我觉得就得这样写才对呀

    你不需要非得把 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 June 14, 2018

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

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

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

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

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

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