在Web开发领域,Ruby on Rails是一个非常流行的框架,它基于MVC(Model-View-Controller)模式。MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种设计模式有助于提高代码的可维护性和可扩展性。以下,我将通过5个实战代码示例,帮助你轻松入门Ruby MVC框架。
示例一:创建一个简单的博客系统
1.1 创建项目
rails new blog
cd blog
1.2 创建模型
rails generate model Article title:string content:text
1.3 创建控制器
rails generate controller Articles
1.4 定义路由
# config/routes.rb
Rails.application.routes.draw do
resources :articles
end
1.5 创建视图
# app/views/articles/index.html.erb
<h1>Articles</h1>
<ul>
<% @articles.each do |article| %>
<li><%= article.title %></li>
<% end %>
</ul>
1.6 创建模型
# app/models/article.rb
class Article < ApplicationRecord
end
1.7 创建控制器
# app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
end
示例二:实现用户注册与登录功能
2.1 创建用户模型
rails generate model User name:string email:string password_digest:string
2.2 创建用户控制器
rails generate controller Users
2.3 定义路由
# config/routes.rb
Rails.application.routes.draw do
resources :users
get 'login', to: 'sessions#new'
post 'login', to: 'sessions#create'
delete 'logout', to: 'sessions#destroy'
end
2.4 创建视图
# app/views/users/new.html.erb
<h1>Register</h1>
<%= form_for @user do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :email %>
<%= f.email_field :email %>
<%= f.label :password %>
<%= f.password_field :password %>
<%= f.submit "Register" %>
<% end %>
2.5 创建控制器
# app/controllers/users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_path, notice: 'User created successfully!'
else
render :new
end
end
private
def user_params
params.require(:user).permit(:name, :email, :password)
end
end
示例三:实现商品管理功能
3.1 创建商品模型
rails generate model Product name:string description:text price:decimal
3.2 创建商品控制器
rails generate controller Products
3.3 定义路由
# config/routes.rb
Rails.application.routes.draw do
resources :products
end
3.4 创建视图
# app/views/products/index.html.erb
<h1>Products</h1>
<ul>
<% @products.each do |product| %>
<li>
<%= product.name %> - <%= product.price %>
</li>
<% end %>
</ul>
3.5 创建控制器
# app/controllers/products_controller.rb
class ProductsController < ApplicationController
def index
@products = Product.all
end
end
示例四:实现订单管理功能
4.1 创建订单模型
rails generate model Order user:references product:references quantity:integer total_price:decimal
4.2 创建订单控制器
rails generate controller Orders
4.3 定义路由
# config/routes.rb
Rails.application.routes.draw do
resources :orders
end
4.4 创建视图
# app/views/orders/index.html.erb
<h1>Orders</h1>
<ul>
<% @orders.each do |order| %>
<li>
<%= order.user.name %> - <%= order.product.name %> - <%= order.quantity %> - <%= order.total_price %>
</li>
<% end %>
</ul>
4.5 创建控制器
# app/controllers/orders_controller.rb
class OrdersController < ApplicationController
def index
@orders = Order.all
end
end
示例五:实现多语言支持
5.1 安装国际化插件
gem 'i18n'
5.2 创建语言文件
rails generate i18n en
5.3 定义语言文件
# config/locales/en.yml
en:
activerecord:
models:
user:
one: User
other: Users
5.4 使用多语言
I18n.locale = :en
puts I18n.t('activerecord.models.user.one')
通过以上5个实战代码示例,相信你已经对Ruby MVC框架有了初步的了解。在实际开发中,你可以根据自己的需求,对示例进行修改和扩展。祝你学习愉快!
