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.rb
和user_controller.rb
,负责处理用户的请求并进行相关的业务逻辑操作。app/models
:包含模型文件,如user.rb
和article.rb
,负责处理应用程序的数据逻辑。app/views
:包含视图文件,如index.html.erb
和about.html.erb
,负责将数据呈现给用户。config/database.yml
:存储数据库配置信息。config/routes.rb
:存储应用程序的路由规则,决定了不同 URL 地址应该对应哪个控制器和动作方法。
示例
下面是一个简单的使用 Rails 框架实现的 MVC 架构示例:
创建控制器
在 app/controllers
文件夹中创建一个名为 home_controller.rb
的文件,并定义一个名为 index
的动作方法:
rubyCopy Codeclass HomeController < ApplicationController
def index
@articles = Article.all
end
end
创建模型
在 app/models
文件夹中创建一个名为 article.rb
的文件,并定义一个 Article
类:
rubyCopy Codeclass 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 CodeRails.application.routes.draw do
root to: 'home#index'
resources :articles
end
现在可以访问 /
URL 地址来显示最新文章列表了。
以上是一个简单的 MVC 架构实现示例,通过合理的组织代码和职责分离,可以更好地开发和维护应用程序。