做过几套小程序/App 的后台,Rails 这边常见几条路:
如果只是后台录入、审核、导出,优先 Administrate 或 Avo;如果管理端本身是产品的一部分、交互复杂,不如直接 SPA/Inertia 现搓,别硬套 CMS。CMS(如一些 headless)更适合内容站,不太适合 App 业务数据后台。
目前最接近的是 Shopify 维护的 ruby-lsp(VS Code / Cursor 装 Ruby LSP 扩展,项目里加 ruby-lsp gem)。
它能做跳转定义、补全、诊断、格式化,对 Rails 也有额外支持;整体体验比老的 Solargraph 稳一些,但和 Pylance 比仍然有差距——Ruby 动态特性多,类型信息主要靠 RBS / 推断,没有 Python 那种“开箱即用的强类型体感”。
实操建议:
gem "ruby-lsp",bundle installSolargraph 还能用,但现在社区重心基本在 ruby-lsp 上了。
不是失灵,是文档结构的问题。
Array#pack / String#unpack 的详细说明不在 Array 类里,而在 Ruby 文档的 Packed Data 专章。所以 ri Array.pack 只会给你方法签名和一句摘要,再挂一个 rdoc-ref:packed_data.rdoc 的交叉引用;交叉引用在终端里经常展不开,看起来就像“坏了”。
可以这样看完整说明:
ri PackedData
# 或者
ri 'Array#pack'
浏览器里打开对应版本的官方 Ruby 文档(搜 Packed Data)会更清楚。ri Array.new 正常,是因为 new 的正文就写在 Array 类文档里。