引言
Ruby on Rails,简称Rails,是一个开源的Web应用框架,它遵循MVC(Model-View-Controller)模式。MVC模式将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种设计模式有助于提高代码的可维护性和复用性。本文将带你从零开始,使用Ruby MVC框架打造你的第一个Web应用。
环境准备
在开始之前,我们需要准备以下环境:
- Ruby:安装Ruby环境,推荐使用RVM或rbenv进行版本管理。
- RubyGems:Ruby的包管理器,用于安装Rails框架。
- 数据库:Rails默认使用SQLite,你也可以选择MySQL、PostgreSQL等数据库。
创建项目
- 打开终端,输入以下命令创建一个新的Rails项目:
rails new myapp
- 进入项目目录:
cd myapp
配置数据库
- 编辑
config/database.yml文件,配置数据库连接信息。
default: &default
adapter: sqlite3
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: db/myapp_development.db
test:
<<: *default
database: db/myapp_test.db
production:
<<: *default
database: <%= ENV['DATABASE_URL'] %>
- 运行以下命令创建数据库和迁移文件:
rails db:create
rails db:migrate
创建模型
- 创建一个名为
User的模型,用于存储用户信息。
rails generate model User name:string email:string
- 迁移数据库:
rails db:migrate
创建控制器
- 创建一个名为
Users的控制器,用于处理用户相关的请求。
rails generate controller Users
- 编辑
app/controllers/users_controller.rb文件,添加以下代码:
class UsersController < ApplicationController
def index
@users = User.all
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to @user, notice: 'User was successfully created.'
else
render :new
end
end
private
def user_params
params.require(:user).permit(:name, :email)
end
end
创建视图
- 创建一个名为
index.html.erb的视图,用于显示用户列表。
<h1>Users</h1>
<ul>
<% @users.each do |user| %>
<li><%= user.name %> - <%= user.email %></li>
<% end %>
</ul>
<%= link_to 'New User', new_user_path %>
- 创建一个名为
show.html.erb的视图,用于显示用户信息。
<h1><%= @user.name %></h1>
<p>Email: <%= @user.email %></p>
<%= link_to 'Back', users_path %>
- 创建一个名为
new.html.erb的视图,用于创建新用户。
<h1>New User</h1>
<%= form_for @user do |f| %>
<div>
<%= f.label :name %>
<%= f.text_field :name %>
</div>
<div>
<%= f.label :email %>
<%= f.email_field :email %>
</div>
<div>
<%= f.submit %>
</div>
<% end %>
启动服务器
- 运行以下命令启动Rails服务器:
rails server
- 打开浏览器,访问
http://localhost:3000/users,你将看到用户列表。
总结
通过本文的学习,你已经掌握了使用Ruby MVC框架创建Web应用的基本方法。接下来,你可以继续学习Rails的高级功能,如ActiveRecord、ActionView、ActionController等,不断提升你的技能。祝你学习愉快!
