Redmine 将附加信息发送到从挂钩调用的部分视图

Redmine send additional information to partial view called from a hook

我想在redmine主项目页面添加信息。 redmine plugin tutorial explains that it can easily be done using Hooks. I found that the hook that I want to use is the view_projects_show_right (from Hooks_List).

redmine hook documentation 中我看到了两种渲染局部的方法。

我的钩子

class RedmineTestHookListener < Redmine::Hook::ViewListener
  def view_projects_show_right(context = {})
    context[:controller].send(:render_to_string, {
        :partial => 'test/test',
        :locals => context,
    })
  end
end

我的部分

<div class="box">
  <h3 class="icon icon-news">Test</h3>
  <p><%= params %></p> <!-- {"controller"=>"projects", "action"=>"show", "id"=>"test-projet"}  -->
    <!-- I would like more information in the params -->
</div>

当然我在 init.rb 中添加了钩子。一切正常,但我想添加来自 redmine 数据库的信息。将数据附加到上下文似乎不起作用。

如何向通过挂钩调用的局部视图发送附加信息?

使用render_on :view_projects_show_right, partial: 'test/test'也是一样。

可以使用 locals

中的额外参数来完成
class RedmineTestHookListener < Redmine::Hook::ViewListener
  def view_projects_show_right(context = {})
    test = "123"
    context[:controller].send(:render_to_string, {
        :partial => 'test/test',
        :locals => { context: context, test: test},

    })
  end
end

并且在局部视图中

  <p><%= test %></p> <!-- "123" -->