Getting Rails' ActiveStorage blob IDs from file URLs13 hours agohttps://mahadk.com/posts/activestorage-file-id/从过期的ActiveStorage URL中提取blob ID,以避免重复下载图片。过期的URL包含一个base64编码的JSON对象,其中包含一个一致的blob ID。方法:按'/'分割URL路径,取倒数第三个片段,按'--'分割,解码base64,然后从JSON中读取'_rails.data'。Blob ID是唯一的且不重复使用,从而实现可靠的文件识别。
Questions for the Team During Onboarding19 days agohttps://simonwillison.net/2026/Mar/6/ally-piechowski/一套针对开发者、CTO/EM以及业务相关方审核Rails代码库的问题集。针对开发者的问题侧重于代码恐惧、部署时机以及测试未能捕获的生产问题。针对CTO/EM的问题涵盖了功能阻碍、错误可见性以及被低估的功能时间线。针对业务相关方的问题涉及了静默禁用的功能和未兑现的客户承诺。提及了最近关于sqlite-utils更新和智能体视频演示工具的相关文章。
Avoiding SQLite Database Locks in Production23 days agohttps://www.bendangelo.me/2026/07/04/avoiding-sqlite-database-locks-in-productio...文章讨论了在使用Solid Queue的Rails应用中遇到SQLite3::BusyException的问题,这是由于SQLite的单写锁机制导致的。关键解决方案包括正确配置SQLite的busy_timeout和timeout为相同值、启用WAL模式,以及优化synchronous和mmap_size等pragma设置。deploy.yml中的配置错误(SOLID_QUEUE_IN_PUMA环境变量)导致Solid Queue运行两次,从而引发锁问题;修复该配置后问题得到解决。Solid Queue中的周期性任务应合理安排执行时间以避免同时运行,从而通过记录异常发生时间来定位锁问题的根源。避免在任务中使用.find_each进行批量更新,因为它会保持读游标打开;应改用pluck获取ID并以小批量处理,以快速释放锁。创建了一项opencode技能来预防SQLite锁问题,指导AI代理在写入时避免使用读游标,并通过事务进行批量写入。