Skip to content

Latest commit

 

History

History
228 lines (141 loc) · 4.77 KB

File metadata and controls

228 lines (141 loc) · 4.77 KB

BUAA-Rails-Blog-App

English Version

目录

这是一个基于 Ruby on Rails 框架开发的旅游博客分享 Web 应用,同时也是北京航空航天大学 Ruby 语言程序设计课程的大作业项目。

环境要求

系统要求

  • 操作系统:Windows 10 或 Ubuntu 20.04

软件版本

  • Ruby: 3.1.2
  • Rails: 7.0.4
  • sqlite3: 1.4
  • yarn: 1.22.19
  • nodejs: 16.17.1

更多依赖请参考项目中的 Gemfile 文件。

安装与配置

  1. 克隆项目代码:
git clone https://github.com/github-bowen/BUAA-Rails-Blog-App.git
cd BUAA-Rails-Blog-App
  1. 安装项目依赖:
bundle install
  1. 配置数据库:
rails db:migrate
  1. (可选) 初始化种子数据:
rails db:init_data
  1. 构建前端资源:
yarn install  # 如遇到问题可尝试:yarn install --ignore-engines
yarn build:css

注意:以上初始化步骤只需执行一次。

运行项目

启动开发服务器:

rails s

在浏览器中访问 http://localhost:3000 即可体验应用。

项目说明

注册与登录

首页展示如下:

1

点击右上角的注册按钮创建新账号:

1

注册成功后会自动登录,并跳转回刚刚访问的页面:

1

博客浏览与演示

点击任意博客即可查看详情页面:

1

1

1

发表评论后如下所示:

1

评论支持删除操作。

修改个人资料

1

用户权限管理

由于酒店、酒店房间、航空公司、航线等数据的创建需要管理员权限,这里提供了一个权限管理页面,方便测试。

1

可将普通用户修改为管理员:

1

查看已注册用户(管理员)

1

管理员可删除其他用户账号。

管理酒店房间、酒店、航空公司、航线(管理员)

管理以上四个数据模型。其中:

  • 创建酒店房间类型时需要先选择所属酒店;
  • 创建航空路线时需要先选择所属航空公司;
  • 即:酒店与房间类型为一对多关系;航空公司与航空路线为一对多关系。

1

1

以上为酒店房间管理页面,其他页面类似。

旅游路线管理

添加旅游路线:

1

1

创建成功后可查看详情:

1

旅游路线与酒店、航空路线均为一对多关系。

博客操作

新建博客:

1

创建成功页面:

1

1

删除博客:

1

问题排查(Windows 平台特定问题)

问题:uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger

如果在 Windows 上运行 Rails 命令时遇到以下错误:

C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/activesupport-7.0.8.7/lib/active_support/logger_thread_safe_level.rb:12:in `<module:LoggerThreadSafeLevel>': uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

解决方案

  1. 手动加载 Logger 打开 config/boot.rb 文件,在顶部添加以下代码:

    require 'logger'
  2. 暂时禁用 bootsnap 在同一文件中,注释掉以下代码:

    # require 'bootsnap/setup'
  3. 清理缓存 手动删除 tmp/cache/bootsnap 文件夹,确保没有旧的缓存文件干扰。

  4. 重新安装依赖 运行以下命令重新安装依赖:

    bundle install --force
  5. 重启 Rails 服务器 重启 Rails 服务器:

    rails s