Ruby on Rails - 框架

框架是一个程序、一组程序和/或代码库,它为您编写了大部分应用程序。当您使用框架时,您的工作是编写应用程序的各个部分,使其执行您想要的特定操作。

当您着手编写 Rails 应用程序时,除了配置和其他日常工作之外,您必须执行三个主要任务 −

  • 描述和建模应用程序的域 − 域是您的应用程序的宇宙。域可能是音乐商店、大学、约会服务、地址簿或硬件清单。所以在这里您必须弄清楚它里面有什么,这个宇宙中存在什么实体以及其中的项目如何相互关联。这相当于对数据库结构进行建模以保存实体及其关系。

  • 指定此域中可能发生的情况 − 域模型是静态的;您必须使其动态化。地址可以添加到地址簿中。乐谱可以从音乐商店购买。用户可以登录约会服务。学生可以在大学注册课程。您需要确定域元素可以参与的所有可能的场景或操作。

  • 选择并设计域的公开视图 − 此时,您可以开始以 Web 浏览器的术语思考。一旦你决定了你的领域有学生,他们可以注册课程,你可以设想一个欢迎页面、一个注册页面和一个确认页面等。这些页面或视图中的每一个都向用户展示了某一时刻的情况。

基于上述三个任务,Ruby on Rails 处理模型/视图/控制器 (MVC) 框架。

Ruby on Rails MVC 框架

Model View Controller 原则将应用程序的工作分为三个独立但紧密合作的子系统。

模型 (ActiveRecord )

它维护对象和数据库之间的关系,并处理验证、关联、事务等。

此子系统在 ActiveRecord 库中实现,它提供了一个关系数据库中的表与操作数据库记录的 Ruby 程序代码之间的接口和绑定。Ruby 方法名称是根据数据库表的字段名称自动生成的。

视图 ( ActionView )

它是一种以特定格式呈现数据的方式,由控制器决定呈现数据而触发。它们是基于脚本的模板系统,如 JSP、ASP、PHP,并且非常容易与 AJAX 技术集成。

该子系统在 ActionView 库中实现,这是一个基于嵌入式 Ruby (ERb) 的系统,用于定义数据呈现的呈现模板。每次与 Rails 应用程序建立 Web 连接都会显示一个视图。

控制器 ( ActionController )

应用程序内引导流量的工具,一方面查询模型中的特定数据,另一方面将数据(搜索、排序、发送消息)组织成符合给定视图需求的形式。

此子系统在 ActionController 中实现,它是位于 ActiveRecord(数据库接口)和 ActionView(演示引擎)之间的数据代理。

MVC 框架的图形表示

下面给出了 Ruby on Rails 框架的图形表示 −

Rails 框架

MVC 框架的目录表示

假设一个标准, Linux 上的默认安装,你可以像这样找到它们 −

tp> cd /usr/local/lib/ruby/gems/2.2.0/gems
tp> ls

您将看到包括(但不限于)以下内容的子目录 −

  • actionpack-x.y.z
  • activerecord-x.y.z
  • rails-x.y.z

在 Windows 安装中,您可以像这样找到它们 −

tp>cd ruby​​\lib
uby\gems\2.2.0\gems
ruby\lib
uby\gems\2.2.0\gems\>dir

您将看到包括(但不限于)以下内容的子目录 −

MVC

ActionView 和 ActionController 捆绑在一起ActionPack。

ActiveRecord 提供了一系列编程技术和快捷方式,用于处理来自 SQL 数据库的数据。ActionController 和 ActionView 提供了处理和显示该数据的工具。Rails 将它们全部结合在一起。