question_banks · v1.0.0 · ComMun
软考题库插件:科目与题目管理、每日一练、章节练习、模拟考试、错题本与用户投稿审核。
将原核心内置的题库系统拆分为独立插件,支持安装 / 启用 / 禁用 / 卸载。
plugins/question_banks/
├── plugin.json # 插件元数据
├── hooks.json # 钩子注册(前台导航 / 后台导航)
├── init.rb # 插件入口
├── lib/
│ ├── nav_item.rb # 前台导航注册
│ └── admin_nav.rb # 后台导航注册(题库管理分组)
├── app/
│ ├── models/ # QbExam / QbQuestion / QbPractice / QbAnswer
│ ├── controllers/ # 前台 QuestionBanksController / QbUserQuestionsController
│ │ └── admin/ # 后台 QbExams / QbQuestions / QbReviews
│ └── views/ # 前后台视图
└── db/
├── migrate/ # 数据表迁移(qb_exams / qb_questions / qb_practices / qb_answers)
└── seeds.rb # 示例科目与题目数据(软考 8 科目 / 50 题)
数据表迁移(新环境需要,已有环境的 qb_* 表已存在则跳过):
bin/rails plugins:migrate_question_banks
安装并启用插件(管理后台「扩展管理 → 插件管理」点击扫描后启用,或命令行):
bin/rails plugins:install_question_banks
初始化示例题库数据(可选):
bin/rails plugins:seed_question_banks
/question_banks 重定向回首页;后台直接访问 qb 管理地址同样被拦截config/routes.rb 中,由控制器内 Plugin.enabled?("question_banks") 判定生效users(投稿人 / 练习记录关联)| 版本 | 发布时间 | 大小 | SHA256 |
|---|---|---|---|
| v1.0.0 最新 | 2026-10-20 09:18 | 44.3 KB | a8b8b30f012c6cee… |