这是一个基于 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文件。
- 克隆项目代码:
git clone https://github.com/github-bowen/BUAA-Rails-Blog-App.git
cd BUAA-Rails-Blog-App- 安装项目依赖:
bundle install- 配置数据库:
rails db:migrate- (可选) 初始化种子数据:
rails db:init_data- 构建前端资源:
yarn install # 如遇到问题可尝试:yarn install --ignore-engines
yarn build:css注意:以上初始化步骤只需执行一次。
启动开发服务器:
rails s在浏览器中访问 http://localhost:3000 即可体验应用。
首页展示如下:
点击右上角的注册按钮创建新账号:
注册成功后会自动登录,并跳转回刚刚访问的页面:
点击任意博客即可查看详情页面:
发表评论后如下所示:
评论支持删除操作。
由于酒店、酒店房间、航空公司、航线等数据的创建需要管理员权限,这里提供了一个权限管理页面,方便测试。
可将普通用户修改为管理员:
管理员可删除其他用户账号。
管理以上四个数据模型。其中:
- 创建酒店房间类型时需要先选择所属酒店;
- 创建航空路线时需要先选择所属航空公司;
- 即:酒店与房间类型为一对多关系;航空公司与航空路线为一对多关系。
以上为酒店房间管理页面,其他页面类似。
添加旅游路线:
创建成功后可查看详情:
旅游路线与酒店、航空路线均为一对多关系。
新建博客:
创建成功页面:
删除博客:
如果在 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)-
手动加载
Logger打开config/boot.rb文件,在顶部添加以下代码:require 'logger'
-
暂时禁用
bootsnap在同一文件中,注释掉以下代码:# require 'bootsnap/setup' -
清理缓存 手动删除
tmp/cache/bootsnap文件夹,确保没有旧的缓存文件干扰。 -
重新安装依赖 运行以下命令重新安装依赖:
bundle install --force
-
重启 Rails 服务器 重启 Rails 服务器:
rails s



















