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" -->
我想在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" -->