В соответствии со спецификацией UML (раздел 11.4.4 версии 2.5):
Конструктор - это операция, имеющая единственный возвращаемый параметр результата типа класса-владельца, и помеченная стандартом стереотип «Создать».
blockquote>Если вы создаете диаграмму для документирования кода, вы должны включить все явные конструкторы.
Если вы строите модель, ориентируясь на функциональность, конструкторы обычно опускаются. Но тогда ваш уровень детализации будет совершенно другим.
В том же духе к тому, что сказал Chuck:
<% TARGETS.each do |target| %>
<li>
<%= link_to target.humanize,
{ :controller => target },
class => ('active' if current_controller == target)) %>
</li>
<% end %>
Выезд link_to_unless_current
. Не точно, что Вы попросили, но это близко.
Кроме того, Вы могли поместить этот вид логики в помощнике для абстракции его из представления.
Виджеты направляющих выезда на GitHub. Это обеспечивает тонну помощников удобства для направляющих материал UI (tabnavs, подсказки, tableizers, шоу скрывает переключатель, простая CSS progressbar) в дополнение к навигации.
Вот документы
Довольно легко видеть, где повторение там. Это все имеет общую форму:
<% if current_controller == XXXXX %>
<li><%= link_to XXXXX, {:controller => XXXXX}, CLASS %></li>
<% else %>
[do the same stuff minus ":class => 'active'"]
<% end %>
Таким образом, мы хотим XXXXX и КЛАСС быть переменными (так как это - единственные вещи, которые изменяются), и остальные могут быть простым шаблоном.
Так, мы могли сделать что-то вроде этого:
%w(Contacts Territories).each |place|
<% class_hash = current_controller == place ? {:class => 'active'} : {}
<li><%= link_to place, {:controller => place}, class_hash)</li>
Немного отличающаяся версия w/link_to_unless_current:
<ul>
<% links.each do |link| -%>
<li><%= link_to_unless_current link.humanize, { :controller => target } %></li>
<% end -%>
</ul>
Хороший ресурс для материала как это является документами направляющих.
Обратите внимание на плагин простой навигации . Это «простой в использовании» плагин rails для создания навигации для ваших приложений rails.