首页
/ Fae CMS 快速入门指南:构建高效的内容管理系统

Fae CMS 快速入门指南:构建高效的内容管理系统

2025-06-04 17:54:44作者:傅爽业Veleda

前言

Fae 是一个基于 Ruby on Rails 的内容管理系统框架,专为开发者设计,提供了快速搭建 CMS 所需的各项功能。本文将详细介绍如何从零开始使用 Fae 构建一个功能完善的内容管理系统。

环境准备

在开始之前,请确保您的开发环境满足以下要求:

  1. Ruby 2.7 或更高版本
  2. Rails 7.0 框架
  3. 数据库系统(推荐 PostgreSQL 或 MySQL)

安装 Rails 7.0 框架:

gem install rails -v '~> 7.0.0'

安装 Fae

第一步:添加依赖

在您的 Rails 项目 Gemfile 中添加 Fae 依赖:

gem 'fae-rails'

然后执行 bundle install 安装依赖。

第二步:运行安装器

执行以下命令初始化 Fae:

rails g fae:install

第三步:启动并配置

启动 Rails 服务器后,访问 /admin 路径创建超级管理员账户。

示例 CMS 构建

让我们通过一个实际案例来展示 Fae 的强大功能:构建一个文章管理系统,包含文章分类和关于我们页面。

使用脚手架生成器

Fae 提供了强大的脚手架生成器,可以快速创建管理界面所需的所有文件。

  1. 生成文章分类模型:
rails g fae:scaffold ArticleCategory name:string position:integer
  1. 生成文章模型(包含特殊字段类型):
rails g fae:scaffold Article title:string slug:string introduction:text body:text date:date hero_image:image pdf:file article_category:references

这里使用了 Fae 特有的 imagefile 类型,它们会自动处理文件上传和关联。

使用页面生成器

Fae 的页面模块允许您将内容块定义为模型属性,便于管理静态页面内容。

生成关于我们页面:

rails g fae:page AboutUs hero_image:image headline:string body:text

数据库迁移

执行迁移命令创建数据库表:

rails db:migrate

表单定制

Fae 生成的表单已经具备基本功能,但我们可以进一步优化用户体验。

文章表单优化

编辑 app/views/admin/articles/_form.html.slim 文件:

  1. 自动生成 slug:
= fae_input f, :title, input_class: 'slugger'
  1. 添加 Markdown 编辑器:
= fae_input f, :body, markdown: true
  1. 使用日期选择器:
fae_datepicker f, :date

表单验证

Fae 支持标准的 Rails 模型验证,并提供了额外的验证辅助方法。

在文章模型中添加验证:

validates :title, presence: true
validates :slug, Fae.validation_helpers.slug

对于唯一性验证,需要在验证配置中暴露字段:

Validation.configure do
  expose Article, :slug
end

导航配置

优化后台导航结构,编辑 app/models/concerns/fae/navigation_concern.rb

def structure
  [
    item('News', subitems: [
      item('Articles', path: admin_articles_path),
      item('Article Categories', path: admin_article_categories_path),
    ]),
    item('Pages', subitems: [
      item('About Us', path: fae.edit_content_block_path('about_us'))
    ])
  ]
end

高级定制与扩展

Fae 设计时就考虑到了可扩展性:

  1. 可以完全覆盖 Fae 的视图和辅助方法
  2. 可以使用 Rails 原生方法替代 Fae 提供的功能
  3. 通过混入模块扩展 Fae 的核心类

结语

通过本指南,您已经掌握了使用 Fae 快速构建内容管理系统的基本方法。Fae 的强大之处在于它既提供了开箱即用的功能,又保留了充分的定制空间,能够随着项目需求的变化而灵活扩展。

建议您在实际项目中尝试这些功能,并根据具体需求进行深度定制。Fae 的模块化设计使得添加新功能或修改现有行为都变得非常简单。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
192
2.16 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
78
72
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
971
572
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
548
76
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
349
1.36 K
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
206
284
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
17