没有找到Redmine Plugin Partials

pol*_*m23 2 ruby redmine partials redmine-plugins

我一直在关注Redmine插件教程并阅读Hooks页面,但我仍然无法使用render_on关键字或其他方式使我的插件部分渲染.

这是我放弃我的部分:

app
??? views
    ??? issues
    ?   ??? _issue_mail_settings_form.html.erb
    ??? projects
        ??? _mail_settings_form.html.erb
Run Code Online (Sandbox Code Playgroud)

这是我的类render_on,其中包含关键字,该关键字位于以下lib目录中:

class MailSettingIssueHooks < Redmine::Hook::ViewListener
  render_on :view_issues_form_details_bottom,            
      :partial => "issues/issue_mail_settings_form"                                                                                                
end
Run Code Online (Sandbox Code Playgroud)

在init.rb我只是require 'mail_setting_issue_hooks'.

如果我像这样加载Redmine,我无法查看页面是否有任何问题 - 我只是得到404错误.请求的控制台输出在这里,虽然看起来不太有用.

如果我定义一个名为view_issues_form_details_bottomin 的方法MailSettingIssueHooks,它返回一个字符串,它正确呈现.

render_on关键字如何决定在哪里查找部分,以及如何使其工作?

pol*_*m23 6

当Redmine加载插件时,它会将每个插件的默认视图目录添加app/views到全局Rails视图路径中.美中不足的是它并没有实际使用的磁盘目录-它假定一个插件所在plugins/<name>,这里<name>是你要用到的参数Redmine::Plugin.register.

这意味着,如果你init.rb看起来像:

Redmine::Plugin.register :cool_stuff do
...
Run Code Online (Sandbox Code Playgroud)

但是你的插件目录实际上redmine_cool_stuff是代码将加载并执行但是找不到视图.

解决方案:确保参数to Plugin.register与redmine plugins目录中的目录名称相同.