Rails 3.1 引擎开发全解析
1. 引擎概述
引擎是 Rails 3.1 的一项新特性,本质上是微型应用程序,能为应用提供额外功能,其运行方式与普通应用类似。例如之前使用过的 Devise 宝石(gem)就是一个引擎,此外还有 RailsAdmin 和 forem 等引擎。引擎允许以宝石或插件的形式在不同应用间共享通用功能,这些功能可以是像 Devise 这样的认证系统、评论引擎,甚至是论坛引擎。
安装引擎的方式是将其作为宝石或插件安装,然后在应用的 config/routes.rb 文件中的特定路由挂载,即可使用其功能。不过不同引擎有所差异,使用时需参考其附带的 README 或其他文档。
2. 引擎的发展历程
2.1 起源与争议
2005 年 11 月 1 日,James Adam 开始开发后来的引擎插件。起初引擎功能简陋,后来逐渐发展得更加实用,为如今 Rails 核心的相关功能提供了灵感。但引擎的发展充满争议,James 花费大量时间为开发引擎的决策进行辩护。不过随着时间推移,社区逐渐接受了引擎的概念。
2.2 早期问题
早期引擎插件独立于核心框架之外,存在一个重大问题:没有明确的方式将其与 Rails 代码集成。Rails 代码的变更可能会破坏引擎插件,导致用户在引擎插件更新前无法升级到最新版本的 Rails。
2.3 成为核心特性
在 Rails 3 的开发过程中,决定将引擎作为核心特性。为此投入了大量工作,使引擎拥有明确的公共 API。当新版本的 Rails 发布时,引擎出现问题的可能性几乎为零。
超级会员免费看
订阅专栏 解锁全文
11

被折叠的 条评论
为什么被折叠?



