Изменение поведения link_to в установке Redmine (ruby on rails)

StackOverflow https://stackoverflow.com/questions/513594

  •  21-08-2019
  •  | 
  •  

Вопрос

Я пытаюсь изменить пользовательский интерфейс установки Redmine (Redmine 0.7.3.devel.2093 (MySQL)).

Когда вы просматриваете проект в Redmine, он генерирует список всех подпроектов для проекта.

Например, приложение/ просмотры/проекты/index.rhtml называет ссылка_то функция:

<% 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( и ничего подобного не выясняется.Я отношусь к типу пользовательского интерфейса, поэтому я действительно не понимаю, как Rails справляется с этим материалом - похоже, это не определено в шаблонах просмотра.

Это было полезно?

Решение

Вы можете сделать это непосредственно в предоставленном вами коде.Просто измени

join(', ')

Для

join('<br />')

Этого должно хватить.

Другие советы

ссылка_то предоставляется фреймворком 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 %> 

Я хотел бы отметить, что последняя версия Redmine trunk изменила список проектов, чтобы использовать HTML-списки (ul и li).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top