【问题标题】:redmine adding subview to project pageredmine 将子视图添加到项目页面
【发布时间】:2013-09-26 08:21:49
【问题描述】:

我创建了 redmine 插件,它显示了一些附加信息的问题。 插件工作正常。 现在我希望这些信息显示在问题摘要下的项目页面上。 我读过这篇文章 http://www.redmine.org/boards/3/topics/33949

rednder_on 方法看起来很有前途。 我为 view_projects_show_right 添加了带有钩子的新插件 代码是这样的

# lib/release_history_hook.rb

class ReleaseHistoryHook < Redmine::Hook::ViewListener
render_on :view_projects_show_right, :partial => 'bottlenecks/view_issues'
end

瓶颈插件树结构是这样的

/opt/redmine/plugins/bottlenecks/
├── app
│   ├── controllers
│   │   ├── bottlenecks_controller.rb
│   │   └── bottlenecks_controller.rb~
│   ├── helpers
│   │   ├── bottlenecks_helper.rb
│   │   └── bottlenecks_helper.rb~
│   ├── models
│   └── views
│   └── bottlenecks
│   ├── view_issues.html.erb
│   ├── view_issues.html.erb~
│   ├── view_issues.html_original.erb
│   ├── view_issues.html_original.erb~
│   └── view_users.html.erb
├── assets
│   ├── images
│   ├── javascripts
│   └── stylesheets
├── config
│   ├── locales
│   │   └── en.yml
│   └── routes.rb
├── db
│   └── migrate
├── init.rb
├── init.rb~
├── lib
│   └── tasks
├── README.rdoc
└── test
├── fixtures
├── functional
│   └── bottlenecks_controller_test.rb
├── integration
├── test_helper.rb
└── unit

21 个目录,16 个文件

我尝试指定完整路径、带扩展名的路径...所有组合。 当我运行 redmine 并访问项目页面时,它总是给我 404 错误。 我显然误解了一些非常基本的东西。 我只是找不到有关该主题的更多信息。 我究竟做错了什么? render_on 似乎也被弃用了。我可以用什么代替?

【问题讨论】:

    标签: ruby-on-rails hook redmine redmine-plugins


    【解决方案1】:

    在我看来,您在没有前缀“_”的情况下错误地命名了您的部分。 你应该把文件_view_issues.html.erb 放到YOUR_PLUGIN/app/views/bottlenecks/

    来源阅读更多 http://www.redmine.org/projects/redmine/wiki/Hooks

    例子:

    如何调用钩子https://github.com/edavis10/redmine_contracts/blob/master/lib/redmine_contracts/hooks/view_issues_show_details_bottom_hook.rb

    钩子代码https://github.com/edavis10/redmine_contracts/blob/master/app/views/issues/_show_deliverable.html.erb

    【讨论】:

    • 下划线?您提供的 wiki 页面中没有任何关于命名符号的内容。除了它没有用。
    • 你渲染部分 - 这意味着(按照惯例)名称应该从“_”开始。尝试检查部分路径(根据您打印的文件树,它是不正确的)。另一个原因可能是你的钩子的“注册”。请参阅示例中的init file(最后几行)。
    • 我的错。我拼错了插件的名称。现在我可以看到它试图呈现我的视图。但是控制器没有被调用。所以所有的变量都是未初始化的。我有 ActionView::Template::Error (undefined method `map' for nil:NilClass):error.
    • 详细描述。什么控制器,什么视图,什么时候出现异常。
    • 我的插件的 init.rb 有一个行菜单 :application_menu, :bottlenecks, { :controller => 'bottlenecks', :action => 'view_issues' }, :caption => 'Bottlenecks'。 bottlenecks_controller.rb 为要渲染的视图准备数据。当我从应用程序菜单调用它时它工作,但在这种情况下 render_on 它不会发生,所以我在视图中使用的所有变量都没有初始化。我应该重命名控制器文件吗?我应该在 routes.rb 中以某种方式配置它吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    相关资源
    最近更新 更多