我正在尝试修改Redmine安装的UI(Redmine 0.7.3.devel.2093(MySQL))。
在Redmine中查看项目时,它会生成项目所有子项目的列表。
例如, app / views / projects / index.rhtml 调用 link_to 函数:
<% if @project_tree[project].any? %>
<p><%= l(:label_subproject_plural) %>:
<%= @project_tree[project].sort.collect {|subproject|
link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp"))}.join(', ') %></p>
<% end %>
哪个输出以下HTML:
<p>Subprojects:
<a href="/projects/show/foo" class="subp fav">Foo Subproject</a>, <a href="/projects/show/bar" class="subp">Bar Subproject</a>, <a href="/projects/show/baz" class="subp fav">Baz Subproject</a></p>
我们发现以逗号分隔的子项目列表很难直观地解析。我们希望每个子项目都列在自己的行上。 (任何标记都很好 - 每个链接上的UL,OL或P标记都是理想的,但BR而不是逗号会完全没问题。)
进行此更改的最佳方法是什么?我找不到应用中定义 link_to
的位置;对 def link_to(
进行点击并且没有任何内容。我是一个UI类型,所以我真的不知道Rails如何处理这些东西 - 它似乎没有在视图模板中定义。
答案 0 :(得分:1)
您可以直接在您提供的代码中执行此操作。只需改变
join(', ')
到
join('<br />')
应该这样做。
答案 1 :(得分:1)
link_to 由Rails框架提供 - 它不会将链接生成为列表 - 它只是创建一个链接。问题是sort.collect和生成对link_to
的调用的块这应该有效,将子项目放入列表项
<% @project_tree[project].sort.collect do |subproject| %>
<li>
<%= link_to(h(subproject.name), {:action => 'show', :id => subproject}, :class => (User.current.member_of?(subproject) ? "subp fav" : "subp")) %>
</li>
<% end %>
答案 2 :(得分:0)
我想指出最新版本的Redmine主干更改了项目列表以使用HTML列表(ul和li)。