在 Rails 8 中构建博客的最佳方法:从 Markdown 到 Action Text

发布: (2026年2月5日 GMT+8 08:08)
4 min read
原文: Dev.to

Source: Dev.to

Cover image for The Best Ways to Build a Blog in Rails 8: From Markdown to Action Text

介绍

开发者的悖论
作为开发者,我们希望对博客拥有完全的控制权,并展示自己的技术栈。然而,构建自定义后台面板往往会拖慢内容创作。请选择一种与您写作方式相匹配的架构。

1. “Indie Hacker” 方式:Markdown + Git

工作原理

将文章以 .md 文件存放在 app/contents/posts/ 中。每个文件使用 YAML front‑matter 来保存元数据。

技术栈

为什么它很棒

  • 版本控制 – 文章存放在 Git 中;git revert 可以撤销错误。
  • 速度 – 无需数据库查询;可将解析后的 HTML 缓存在内存或使用 Solid Cache
  • 可移植性 – 如果离开 Rails,内容仍然是标准的 Markdown 文件。

2. “Omakase” 方式:Action Text + Trix

工作原理

使用 Rails 内置的富文本属性。

# app/models/post.rb
class Post < ApplicationRecord
  has_rich_text :content
end

为什么它很棒

  • 图片处理 – Active Storage 管理上传、尺寸调整和嵌入。
  • 编辑器 – Trix 提供简洁的拖拽体验。
  • 集成 – 与 Rails 生态系统(例如 ActionBroadcasting)无缝配合。

需要注意的点: 内容以 HTML 片段的形式存入数据库,这使得全局查找‑替换或迁移相较于 Markdown 稍显繁琐。

3. “Pro” 方式:Rails + Headless CMS

技术栈

  • 外部 CMS – Contentful、Strapi,或 Spina CMS(Rails 原生引擎)。
  • 业务逻辑 – Rails 通过 CMS API 获取内容并渲染。

为什么它很棒

  • 关注点分离 – 无需自行构建图片上传、预览或草稿/发布工作流;CMS 已经提供这些功能。
  • SEO 工具 – 内置 SEO 字段和校验。

任意 Rails 博客的“必备”清单

1. RSS Feed

提供 /feed.rss 路由(例如使用 jbuilder)。RSS 在内容分发中仍然非常有价值。

2. Meta Tags(meta-tags gem)

添加 OpenGraph 与 Twitter Card 标签,使文章在社交平台上展示良好。该 gem 让你可以动态设置标题、描述和社交图片。

3. 合理的缓存

博客阅读量大,属于读‑重型应用。

  • 对文章正文使用 Fragment Caching
  • 利用 Solid Cache(Rails 8)在部署之间保持缓存持久化。

总结:该选哪一种?

  • Markdown – 适合热爱 Git、想避免使用数据库的独立开发者。
  • Action Text – 适合追求完整 “Rails 风格” 体验、需要在浏览器中编辑的场景。
  • Spina 或其他 Headless CMS – 当你需要一个精致的后台 UI 而不想自行构建时的最佳选择。

最好的博客是你真正愿意去写的博客。选择一种不妨碍你创作的方式吧。

你是在构建自定义博客还是使用生成器?在评论里分享你的链接吧! 👇

Back to Blog

相关文章

阅读更多 »