• 上述设计有慢查询问题

    在 settings 表加个用户激活账号截止时间 activate_end_at, 然后加个索引, 查询时User.join(:setting).where('settings.activate_end_at > ?', Time.now)

    插入 setting 时设置 activate_end_at = user.attend_at + activate_duration.minute

    若业务已上线, 可以先加字段批量设值再上业务代码

  • 可以这样写,就是 rubocop 的风格走偏了 (https://rubystyle.guide/#namespace-definition),没有因地制宜. 实际业务编程中, 我们根本就不会去定义 Web、Controllers、Home 范围内的常量.

    class Web::Controllers::Home::Index
      include Web::Action
      def call(params)
          print  "开始写代码"
          if  params  
          else   
          end 
       end
    end
    

    同理 Rails 的控制层嵌套也应写成这样, 没有任何损失. 因为根本就不会去定义 Api, V1 级别的控制器常量, 所以没有任何影响. 目前我就要求自己项目的人这样写, 层级越少,越不容易达到每行 80 个字符的限制.

    class Api::V1::UsersController < Api::V1::BaseController
       ......
    end
    
  • rbs 将给 ruby 带来质的改变 at 2021年07月16日

    同样都是做类型声明,Python 的方案是在原文件里操作,做类型注解,Ruby 却是新开一个文件。rbs 出来这么久大家都不感兴趣不使用,自然是 rbs 设计本身出了问题。 在过去 20 年,日本一直在点错科技树,rbs 不外乎也是日本人又一个"杰作"罢了。

  • 可以 grep 一下看下是哪个文件存在问题:

    bundle show rails
    grep -rn "ruby\.exe" /Users/rocky/.rvm/gems/ruby-2.5.5/gems # 路径替换为上面bundle查看的路径
    grep -rn "ruby\.exe" .
    
  • Ruby 值得一学 at 2021年05月27日

    API 开发

  • Ruby 值得一学 at 2021年05月27日

    ruby, go, python 都在用

  • Ruby 值得一学 at 2021年05月26日

    go 语言。我们公司某个新项目用 go 语言开发,相关人员花半个月就上手了,开发效率是可以的。代码提示,fmt 都是开发利器

  • Ruby 值得一学 at 2021年05月25日

    amber 这个框架维护太慢了,Crystal 三月份发布 1.0.0,2000 多星星的框架到现在还没支持 1.0.0。kemal 也是不勤励维护的状态。lucky 到现在 issue 还一大把。整一个 Crystal 都被 Ruby 的概念绑架了,难以突破和超越。看不到未来。

  • Ruby 值得一学 at 2021年05月25日

    不怎样,已弃坑

  • Ruby 值得一学 at 2021年05月25日

    开发效率 Go 只是比 Ruby 慢一点, 还要考虑后续的维护成本. 楼主先学的 Go 后学的 Ruby, 产生的认知错觉, 技术达到一定高度 Go 的开发效率并不慢. 另外, Ruby on Rails 一时爽, 换人维护真心就是火葬场. 空指针异常、风格不统一、解决问题的选择过多、国内生态差 (很多 SDK 都没 Ruby 版本)、非静态编译导致重构困难、微服务生态下毫无作为, 这些都是你要面对的.

  • 利用好元编程重构下代码 at 2021年04月07日

    建议大家不要模仿。普通业务中是真的用不到元编程。楼主这样改,真就从一坨还可以维护的代码往米田共方向奔跑。

  • Rails 因為 mimemagic 炸了 at 2021年03月26日

    https://github.com/rails/rails/issues/41750

    不得不说, 楼主这个 issue 链接里面的评论质量是真的高.

    观点一: 如果可以由 rubygems 出面解决问题, 大家用 docker 的就不用更新版本号了.

    观点二: 百万美元错误.

    (管理员) 观点三: 以上观点毫无价值, 封评处理. 😀

    管理员停止评论的行为是真的不厚道.

  • Rails 因為 mimemagic 炸了 at 2021年03月26日

    另外 rubygems 应该限制已经发布了的版本不能作者删除. 明明东西都是从 rubygems 下载的, 作者说删就删. 😀

  • Rails 因為 mimemagic 炸了 at 2021年03月26日

    这就不得不吐槽下 rails 了, 微服务项目中完全没有用到 activestorage, 硬是有这个依赖, 这个依赖还依赖别人 gem. 😀 貌似 activestorage 是 5.1 还是 5.2 之后才有的

  • Rails 因為 mimemagic 炸了 at 2021年03月26日

    昨天刚升级到 0.3.6, 今天又要升级, 对这个作者芜话可说了 😀

  • Rails 因為 mimemagic 炸了 at 2021年03月25日

    给我个感觉 Ruby 社区好多团队还没用上 docker 部署。不知道是人气不行,还是生产工具普遍落后。🤐

  • Rails 因為 mimemagic 炸了 at 2021年03月25日

    建议管理员临时置顶该帖 @huacnlee

  • Crystal 1.0.0 Released! at 2021年03月25日

    不清楚哦,fiber 还没用到过

  • Rails 因為 mimemagic 炸了 at 2021年03月25日

    是 mimemagic 作者移除了旧版本,他现在只保留了 0.3.6 和 0.4.0,所有用 0.3.0 版本的可能都要更新下

  • 测试性能优化建议 - 续篇 at 2021年02月17日

    为什么测试里面不应该用 Sidekiq?

    测试也应判断异步任务是否被调用了。

    sidekiq 的 wiki 里有一页就是专门说如何做测试的。直接根据 wiki 操作就好了,也不用真正意义上执行任务,只是判断任务是否入队列即可。 https://github.com/mperham/sidekiq/wiki/Testing

  • 没有更简洁的写法,不是代码越短就越好的,要简单易懂。 &就是个语法糖,如果语法不适用这个语法糖就别强求

  • vscode 的插件 Tabnine, 人工智能的提示

  • Model.new(JSON.parse(json))
    
  • RSpec XPath 问题 at 2020年12月30日

    看了下文档,目测你需要传参数 visible:false。

    visible 默认是 true,不显示非可见元素。

  • 的确不稳定。纠正一下,是https://gems.ruby-china.com

    https://gems.ruby-china.org是老地址,已废弃。