其实我之前做的大多是按 jumpstart 这种模式做,也没遇到什么问题。
Jumpstart 模式适合类似 github 这样的开放平台,用户有唯一的资料页,各个组织的项目可以转移,这样就需要有全局的 User 模型。
Basecamp 模式适合租户数据隔离的场景,例如每个租户有独立的用户资料,各个租户的内容不可以转移,这样使用租户领域的 User 更方便。
我还没想清楚哪种更优,也许取决于应用的租户隔离需求程度。
【Rei on Rails】#17 Fizzy 开源看板应用 - Rails 核心团队的示范项目
How we architect Rails apps at 37signals: a Fizzy tour. https://www.youtube.com/watch?v=dvPXFnX60cg
Lessons learned from studying Fizzy test suite https://testdrivingrails.com/blog/fizzy-test-suite
我是把构建机放在香港,一次解决所有源的问题。
rails pulse 自己的性能评估,数据收集的性能开销很小,主要是写数据库占大头 https://railspulse.com/documentation/performance/
我觉得 Mac 安装单版本 Ruby 最简单的方法是用 homebrew,并且之后也能用来安装 redis postgres 之类的依赖。
需要多版本支持建议用 docker + devcontainer。我之前录了个视频 Rei on Rails #10 Devcontainer 搭建开发环境。
还有网络问题,建议全局科学上网。
想起我的第一个 ruby 脚本也是下载某些内容。
The Transition of RubyGems Repository Ownership
https://ruby-lang.org/en/news/2025/10/17/rubygems-repository-transition/
Rubygems 仓库所有权转移给 Ruby core team,由 Ruby central 和 Ruby core team 共同管理。
不要再重复发帖,再发 ban 了。
Falcon 支持在应用层面使用 fiber 并发,和 thruster 解决的不是一个问题。
真相之源更新 https://rubycentral.org/news/source-of-truth-update-friday-october-10-2025/
Andre Arko 声称拥有“Bundler”商标,并要求 Ruby Central 停止使用“Bundler”
引导 gem.coop 治理 https://mikemcquaid.com/bootstrapping-gem-coop-governance/
homebrew 作者 Mike McQuaid 短暂参与了 gem.coop 的治理流程建设,但似乎发现水太深连忙退出撇清关系。
Rubygems.org AWS 根访问活动 – 2025 年 9 月 https://rubycentral.org/news/rubygems-org-aws-root-access-event-september-2025/
Ruby Central 在撤销 André 的控制权限后,仍然让 André 拥有 aws 的 root 权限并且修改了密码,为此发布了事件说明。
RubyGems“安全事件” https://andre.arko.net/2025/10/09/the-rubygems-security-incident/
André 回应,那时候以为是被黑了,所以更改密码。知道这是 Ruby Central 有意为之就没动了,还通知了你们,没想到 Ruby Central 倒打一耙。
亲爱的 Ruby 开发者:Shopify 不是你的敌人 https://byroot.github.io/opensource/ruby/2025/10/09/dear-rubyists.html
前 shopify 员工的视角。
(Ruby Central)董事会成员对 RubyGems 争议的看法
https://apiguy.substack.com/p/a-board-members-perspective-of-the
被 Ruby Central 移除的 rubygems 维护者另外搞了个 gem server
Why I'm not rushing to take sides in the RubyGems fiasco
https://justin.searls.co/posts/why-im-not-rushing-to-take-sides-in-the-rubygems-fiasco/
顶楼广告号已屏蔽。本帖有其他评论所以留着。
太夸张了😅
可能内部用的不是 to_time 而是 Time.parse 之类,我没空深挖了。从现象看就是时区没处理好。我写的话会用显式类型转换。
cover? 实际执行了 begin <= obj <= end 运算,具体来说,是计算 "2025-09-17" <= Time.current - 4.hours。
"2025-09-17" <= Time.current - 4.hours 会将字符串 "2025-09-17" 转为时间,也就是:
> "2025-09-17".to_time
=> 2025-09-17 00:00:00 +0000
注意时区,当它与 2025-09-17 07:29:45 +0800 比较的时候,结果是 false。
cover? 方法怎么处理时间区间的时区的?
我查文档 UNIQUE NULLS NOT DISTINCT 是指 null 视为同一个值,也就不符合 unique.
https://www.postgresql.org/about/featurematrix/detail/unique-nulls-not-distinct/
不加 NULLS NOT DISTINCT 就符合你需要的插入多个 null。
题外话:我一般把 auth_token 设为 null: false,逻辑更简单。
DHH 在 Rails World 上也展示了 Omarchy

DHH 发行版
这是有可能的,据说 anycable 处理了这个问题,如果是生产环境可以考虑用 anycable https://anycable.io/
我没有用 stream update 来更新是因为累增的 output 会让发送数据量大了很多,于是自定义了一个 action 来只发送新增的部分。
不过 turbo stream 本身的 html 片段相比内容片段还是太大了,还可以直接用 action cable 发送来优化。(我还没做)