本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Rails 信条
- Optimize for programmer happiness
- Convention over Configuration
- The menu is omakase
- No one paradigm
- Exalt beautiful code
- Provide sharp knives
- Value integrated systems
- Progress over stability
- Push up a big tent
MVC模式
模型 - 视图 - 控制器 (MVC) 体系结构模式将应用程序分成 3 个主要组件组:模型、视图和控制器。 此模式有助于实现关注点分离。 使用此模式,用户请求被路由到控制器,后者负责使用模型来执行用户操作和/或检索查询结果。 控制器选择要显示给用户的视图,并为其提供所需的任何模型数据。
MVC 是一种软件应用程序架构的模式。它将应用程序分为以下组件:
- 处理数据和业务逻辑的模型
- 用于处理用户界面和应用程序的控制器
- 用于处理图形用户界面对象和表示的视图
这种分离导致用户请求按如下方式处理:
- 浏览器(在客户端)向服务器上的控制器发送一个页面请求。
- 控制器从模型中检索它需要的数据以响应请求。
- 控制器将检索到的数据提供给视图。
- 视图被渲染并发送回客户端以供浏览器显示。
这种责任划分有助于根据复杂性缩放应用程序,因为这更易于编码、调试和测试包含单一作业的某个组成部分(模型、视图或控制器)。 但这会加大更新、测试和调试代码的难度,该代码在这 3 个领域的两个或多个领域间存在依赖关系。 例如,用户界面逻辑的变更频率往往高于业务逻辑。 如果将表示代码和业务逻辑组合在单个对象中,则每次更改用户界面时都必须修改包含业务逻辑的对象。 这常常会引发错误,并且需要在每次进行细微的用户界面更改后重新测试业务逻辑。
自定义 Rails 初始化项目
创建使用 mysql 数据库的 Rails 项目
rails new hello_web_app --database=mysql
创建使用 Postgress 数据库的 Rails 项目
rails new rails_pg_toy_app -d postgresql
创建使用 Postgress 数据库的 Rails 项目,并使用 esbuild 打包 js,css 默认使用 bootstrap
rails new rails_pg_toy_app -d postgresql -j esbuild --css bootstrap
创建使用指定 Rails 版本的 Rails 项目
rails _5.2.6_ new hello_web_app --database=mysql