简介
Ruby on Rails(简称Rails)是一个基于Ruby语言的开发框架,旨在轻松构建Web应用程序。它采用了MVC(Model-View-Controller)设计模式,提供了丰富的框架和工具,使开发人员能够快速构建高效、可扩展的应用程序。
本教程将向您展示如何使用Ruby on Rails创建一个简单的博客应用程序。我们将实现用户发布、编辑和删除文章的功能,以及其他常见的博客功能。
环境准备
首先,确保您的系统已经安装了以下软件:
- Ruby(推荐版本:2.7.1)
- Rails(推荐版本:6.0.3)
您可以通过在终端中运行以下命令来检查这些软件是否已正确安装:
ruby -v
rails -v
如果没有问题,您将看到相关软件的版本信息。
创建新的Rails应用程序
首先,让我们创建一个新的Rails应用程序。在终端中运行以下命令:
rails new blog
cd blog
这将创建一个名为“blog”的目录,并将您的终端导航到该目录。
创建文章模型和视图
接下来,我们将创建一个名为“Article”的模型来表示博客文章。在终端中运行以下命令:
rails generate model Article title:string content:text
这将为我们生成一个Article模型,并创建title和content两个字段。
然后,运行数据库迁移命令以创建实际的数据表:
rails db:migrate
创建文章控制器
现在,我们将创建一个Articles控制器来处理与文章相关的操作。在终端中运行以下命令:
rails generate controller Articles
这将为我们生成一个Articles控制器,并创建相关的视图和操作。
编写文章视图和路由
在app/views/articles目录下,创建一个名为“index.html.erb”的文件,并添加以下内容:
<h1>文章列表</h1>
<ul>
<% @articles.each do |article| %>
<li>
<h2><%= article.title %></h2>
<p><%= article.content %></p>
</li>
<% end %>
</ul>
这将创建一个简单的文章列表,显示每篇文章的标题和内容。
接下来,在config/routes.rb文件中添加以下路由:
Rails.application.routes.draw do
resources :articles
root to: 'articles#index'
end
这将为我们创建了一个文章资源的路由,并将根路径重定向到文章列表页面。
更新Articles控制器和模型
打开app/controllers/articles_controller.rb文件,更新其内容如下:
class ArticlesController < ApplicationController
before_action :set_article, only: [:show, :edit, :update, :destroy]
def index
@articles = Article.all
end
def show
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article, notice: '文章创建成功!'
else
render :new
end
end
def edit
end
def update
if @article.update(article_params)
redirect_to @article, notice: '文章更新成功!'
else
render :edit
end
end
def destroy
@article.destroy
redirect_to articles_url, notice: '文章删除成功!'
end
private
def set_article
@article = Article.find(params[:id])
end
def article_params
params.require(:article).permit(:title, :content)
end
end
这里我们对Articles控制器进行了修改,加入了一些操作来处理文章的创建、编辑和删除。
打开app/models/article.rb文件,添加以下内容:
class Article < ApplicationRecord
validates :title, presence: true
validates :content, presence: true
end
这将为Article模型添加验证,确保文章的标题和内容不能为空。
更新视图
创建一个名为“new.html.erb”的文件,在app/views/articles目录下,添加以下内容:
<h1>创建新文章</h1>
<%= form_with(model: @article, local: true) do |form| %>
<% if @article.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@article.errors.count, "错误") %>导致文章无法保存:</h2>
<ul>
<% @article.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= form.label :title, '标题' %>
<%= form.text_field :title, class: 'form-control' %>
</div>
<div class="field">
<%= form.label :content, '内容' %>
<%= form.text_area :content, class: 'form-control' %>
</div>
<div class="actions">
<%= form.submit '保存', class: 'btn btn-primary' %>
</div>
<% end %>
这将创建一个表单,用于创建新的文章。它还处理了表单验证错误的显示。
创建一个名为“edit.html.erb”的文件,在app/views/articles目录下,添加以下内容:
<h1>编辑文章</h1>
<%= form_with(model: @article, local: true) do |form| %>
<% if @article.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@article.errors.count, "错误") %>导致文章无法保存:</h2>
<ul>
<% @article.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= form.label :title, '标题' %>
<%= form.text_field :title, class: 'form-control' %>
</div>
<div class="field">
<%= form.label :content, '内容' %>
<%= form.text_area :content, class: 'form-control' %>
</div>
<div class="actions">
<%= form.submit '保存', class: 'btn btn-primary' %>
</div>
<% end %>
这将创建一个表单,用于编辑现有的文章。它也处理了表单验证错误的显示。
修改app/views/articles/show.html.erb文件,添加以下内容:
<h1><%= @article.title %></h1>
<p><%= @article.content %></p>
<p>
<%= link_to '编辑', edit_article_path(@article) %> |
<%= link_to '删除', article_path(@article), method: :delete, data: { confirm: '确定要删除这篇文章吗?' } %>
</p>
<p>
<%= link_to '返回文章列表', articles_path %>
</p>
这将为我们显示单个文章的详细信息,并提供编辑和删除文章的链接。
运行应用程序
现在,让我们在终端中运行以下命令启动我们的Rails应用程序:
rails server
然后,在浏览器中访问http://localhost:3000,您应该能够看到我们的博客应用程序的首页。
点击“创建新文章”链接,您将被带到创建文章的页面。在那里,您可以输入文章标题和内容,并点击“保存”按钮来创建一篇新文章。
在文章列表页面,您将看到我们刚才创建的文章。
您可以点击文章标题进入单独的文章页面,您还可以在那里编辑或删除文章。
总结
在本教程中,我们学习了如何使用Ruby on Rails创建一个简单的博客应用程序。我们了解了如何创建模型、控制器和视图,以及如何处理文章的创建、编辑和删除操作。
这只是一个最基本的博客应用程序,还有很多其他功能可以进一步扩展和改进,如用户认证、评论功能、动态路由等等。希望本教程能为您提供一个入门Rails开发的基础,并激发您进一步探索的兴趣。
本文来自极简博客,作者:码农日志,转载请注明原文链接:使用Ruby on Rails创建一个博客应用程序