Rails博客系统实战 #

一、项目概述 #

1.1 功能需求 #

功能 说明
用户认证 注册、登录、登出
文章管理 CRUD操作
评论系统 评论文章
分类管理 文章分类

1.2 技术栈 #

  • Rails 7.1
  • PostgreSQL
  • Devise
  • Bootstrap

二、项目创建 #

2.1 创建项目 #

bash
rails new blog --database=postgresql
cd blog

2.2 安装依赖 #

ruby
# Gemfile
gem 'devise'
gem 'kaminari'
gem 'bootstrap'

三、模型设计 #

3.1 用户模型 #

bash
rails generate devise User

3.2 文章模型 #

bash
rails generate scaffold Article title:string body:text user:references category:references

3.3 评论模型 #

bash
rails generate model Comment body:text article:references user:references

四、实现步骤 #

4.1 用户认证 #

ruby
# 安装Devise
rails generate devise:install
rails generate devise User

4.2 文章管理 #

ruby
# app/controllers/articles_controller.rb
class ArticlesController < ApplicationController
  before_action :authenticate_user!, except: [:index, :show]
  before_action :set_article, only: [:show, :edit, :update, :destroy]
  
  def index
    @articles = Article.page(params[:page]).per(10)
  end
  
  def show
    @comment = @article.comments.build
  end
  
  def create
    @article = current_user.articles.build(article_params)
    
    if @article.save
      redirect_to @article, notice: '文章创建成功'
    else
      render :new
    end
  end
  
  private
  
  def set_article
    @article = Article.find(params[:id])
  end
  
  def article_params
    params.require(:article).permit(:title, :body, :category_id)
  end
end

五、总结 #

5.1 核心要点 #

要点 说明
Devise 用户认证
Scaffold 快速生成
关联 用户-文章-评论

5.2 下一步 #

现在你已经完成了博客系统,接下来让我们学习 RESTful API,深入了解Rails的API开发实战!

最后更新:2026-03-28