我想在redmine主项目页面中添加信息。redmine插件教程解释说,使用Hooks可以很容易地完成。我发现我想要使用的钩子是view_projects_show_right
(来自Hooks_List(。
在redminehook文档中,我看到了两种呈现局部的方法。
我的钩子
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" -->