有关 Rails 及其工作原理的概述,您可以查看我的文章什么是 Ruby on Rails?有帮助。
Rails 是一个扩展 Ruby 编程语言的软件库。它是一个包库(特别是 RubyGem),使用操作系统命令行界面安装。gem 包含几个工具,包括创建默认 Rails 项目 ( ) 的生成器(脚本rails new ...
)。默认的 Rails 项目提供了一组符合一组约定的文件,因此所有 Rails 应用程序都具有相同的架构。
Rails 是一个构建网站的框架。因此,Rails 建立了更容易协作和维护的约定。这些约定被编为 Rails API(应用程序编程接口,或控制代码的指令)。Rails API 在线记录并在书籍、文章和博客文章中进行了描述。学习 Rails 意味着学习如何使用 Rails 约定及其 API。
在项目目录中创建的许多文件是rails new ...
从隐藏在 Rails gem 中的父类继承而来的,提供在 Rails API 中定义的行为。例如,当您创建从 ActiveRecord 继承的模型时,您可以使用 ActiveRecord API 中的方法来访问数据库。
当您使用应用程序服务器运行 Rails 应用程序时,您添加到 Rails 项目目录的自定义代码将与 Rails gem 中提供的代码相结合,以响应浏览器请求。
您的简化描述并不遥远。没有“rails 脚本”;在开发过程中使用了许多生成器(用于创建模型、控制器、项目目录等)。这rails new ...
生成器(脚本)从命令行设置项目目录,但不修改 gem 提供的 Rails 库。当您在 Ruby 开发环境中安装 Rails gem 时,Rails 软件库(API)可用于您在文件系统中创建的任何 Rails 项目。您构建的任何 Rails 项目都使用 Rails gem 提供的代码,既可以创建初始项目文件,也可以提供框架的完整行为。我不确定我们是否会说一个新项目“扩展”了 Rails gem(这意味着添加将在许多项目中使用的功能),但可以肯定的是一个新项目包含或“构建在”Rails gem。