|
|
@@ -0,0 +1,22 @@
|
|
|
+# 插件
|
|
|
+
|
|
|
+# 插件开发
|
|
|
+
|
|
|
+
|
|
|
+1. 创建插件:执行`ruby script/generate redmine_plugin Polls`,生成插件所需的控制器、模型、视图、迁移文件等目录结构
|
|
|
+
|
|
|
+2. 编辑插件信息:修改`vendor/plugins/redmine_polls/init.rb`文件,配置插件名称、作者、描述、版本等基础信息
|
|
|
+
|
|
|
+3. 重启验证:重启Redmine应用服务,访问`http://localhost:3000/admin/plugins`,可在插件列表中查看新增的Polls插件
|
|
|
+
|
|
|
+4. 创建模型:执行`ruby script/generate redmine_plugin_model Polls poll question:string yes:integer no:integer`生成模型;将生成的时间戳迁移文件重命名为数字前缀(如001_xxx.rb);编辑`vendor/plugins/redmine_polls/app/models/poll.rb`,添加`vote`投票业务方法
|
|
|
+
|
|
|
+5. 数据迁移:执行`rake db:migrate_plugins RAILS_ENV='production'`完成数据库迁移;通过MySQL命令插入测试数据(如两条投票问题)
|
|
|
+
|
|
|
+6. 添加控制器与视图:执行`ruby script/generate redmine_plugin_controller Polls polls index vote`生成控制器及视图;编辑`polls_controller.rb`实现列表查询(index)和投票(vote)逻辑;编辑`index.html.erb`视图文件渲染投票列表及投票按钮;删除无用的`vote.html.erb`视图
|
|
|
+
|
|
|
+7. 扩展菜单:在`init.rb`中配置应用菜单(:application_menu)或项目菜单(:project_menu);修改PollsController添加`find_project`方法获取项目实例变量(@project),确保项目菜单正常显示
|
|
|
+
|
|
|
+8. 添加权限:在`init.rb`中细化权限配置(拆分view_polls、vote_polls权限);更新PollsController添加`before_filter :find_project, :authorize`实现权限过滤,支持为不同角色分配权限
|
|
|
+
|
|
|
+
|