📅  最后修改于: 2023-12-03 15:28:08.782000             🧑  作者: Mango
在 Ruby on Rails 中,控制器是一个中枢枢纽,用于处理来自客户端的请求,并将响应返回给客户端。控制器通常使用模型来从数据库中检索数据并将其传递给视图以呈现响应。
在这篇文章中,我们将介绍如何设计和生成控制器来处理请求和响应。
在设计控制器之前,我们需要考虑以下问题:
一旦我们回答了这些问题,我们就可以开始设计控制器了。以下是一个示例控制器的代码:
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def create
@user = User.new(user_params)
if @user.save
redirect_to @user
else
render :new
end
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to @user
else
render :edit
end
end
def destroy
@user = User.find(params[:id])
@user.destroy
redirect_to users_path
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end
在上面的示例中,控制器具有以下功能:
index
方法用于显示所有用户的列表。show
方法用于显示单个用户的详细信息。create
方法用于创建新用户。update
方法用于更新现有用户。destroy
方法用于删除用户。在 Rails 中,我们可以使用 rails generate
命令来生成控制器。以下是一个示例命令:
rails generate controller Users index show new create edit update destroy
上面的命令将生成一个名为 UsersController
的控制器,并定义 index
、show
、new
、create
、edit
、update
和 destroy
方法。此外,它还将自动添加路由到 config/routes.rb
文件。
在本文中,我们介绍了如何设计和生成控制器以处理来自客户端的请求并将响应返回给客户端。我们讨论了如何考虑设计决策,并提供了一个示例控制器的代码。最后,我们演示了如何使用 Rails 命令行工具来生成控制器。