修改在管理平台安装的link_to的行为(Ruby on Rails的)
-
21-08-2019 - |
题
我试图修改管理平台安装的UI(管理平台0.7.3.devel.2093(MySQL的))。
当您查看管理平台的一个项目,它生成所有子项目的项目清单。
例如,应用/视图/项目/ 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
强>在该应用中被定义; grepping对于 def link_to(
并类似变成了什么。我是一个UI的类型,所以我真的不明白怎么用这个东西Rails的交易 - 它似乎并没有在视图模板中定义。
解决方案
您可以在您所提供的代码直接做到这一点。只要改变
join(', ')
到
join('<br />')
这应该这样做。
其他提示
<强>的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 %>
我想指出的是,管理平台干线的最新版本改项目上市使用HTML列表(UL和LI)。
不隶属于 StackOverflow