MVC 文件夹学习笔记

什么是MVC?

MVC 是一种常用的软件架构设计模式,它将应用程序分为三个核心部分:Model(模型)、View(视图)和 Controller(控制器)。这三个部分分别处理不同的任务:

  • Model(模型):负责处理应用程序的数据逻辑,通常包括对数据的查询、修改和更新等操作。
  • View(视图):显示用户界面,将模型数据呈现给用户,通常是以 HTML 页面的形式呈现。
  • Controller(控制器):处理用户请求并控制流程,负责在模型和视图之间进行协调和通信。

MVC 模式可以帮助开发者更好地组织代码和实现业务逻辑,提高应用程序的可维护性和可扩展性。

MVC 文件夹结构

在实现 MVC 架构时,通常会将相关文件组织到一个特定的文件夹中,这个文件夹可以按照不同的功能进行划分和组织。下面是一个常用的 MVC 文件夹结构示例:

Copy Code
├── app │ ├── controllers │ │ ├── home_controller.rb │ │ └── user_controller.rb │ ├── models │ │ ├── user.rb │ │ └── article.rb │ └── views │ ├── home │ │ ├── index.html.erb │ │ └── about.html.erb │ └── user │ ├── login.html.erb │ └── register.html.erb └── config ├── database.yml └── routes.rb
  • app/controllers:包含控制器文件,如 home_controller.rbuser_controller.rb,负责处理用户的请求并进行相关的业务逻辑操作。
  • app/models:包含模型文件,如 user.rbarticle.rb,负责处理应用程序的数据逻辑。
  • app/views:包含视图文件,如 index.html.erbabout.html.erb,负责将数据呈现给用户。
  • config/database.yml:存储数据库配置信息。
  • config/routes.rb:存储应用程序的路由规则,决定了不同 URL 地址应该对应哪个控制器和动作方法。

示例

下面是一个简单的使用 Rails 框架实现的 MVC 架构示例:

创建控制器

app/controllers 文件夹中创建一个名为 home_controller.rb 的文件,并定义一个名为 index 的动作方法:

rubyCopy Code
class HomeController < ApplicationController def index @articles = Article.all end end

创建模型

app/models 文件夹中创建一个名为 article.rb 的文件,并定义一个 Article 类:

rubyCopy Code
class Article < ApplicationRecord end

创建视图

app/views/home 文件夹中创建一个名为 index.html.erb 的文件,并编写以下代码:

htmlCopy Code
<h1>最新文章</h1> <ul> <% @articles.each do |article| %> <li><%= link_to article.title, article_path(article) %></li> <% end %> </ul>

配置路由

config/routes.rb 文件中添加以下代码:

rubyCopy Code
Rails.application.routes.draw do root to: 'home#index' resources :articles end

现在可以访问 / URL 地址来显示最新文章列表了。

以上是一个简单的 MVC 架构实现示例,通过合理的组织代码和职责分离,可以更好地开发和维护应用程序。