Направляющие: Изящный способ обработать навигацию?

В соответствии со спецификацией UML (раздел 11.4.4 версии 2.5):

Конструктор - это операция, имеющая единственный возвращаемый параметр результата типа класса-владельца, и помеченная стандартом стереотип «Создать».

Если вы создаете диаграмму для документирования кода, вы должны включить все явные конструкторы.

Если вы строите модель, ориентируясь на функциональность, конструкторы обычно опускаются. Но тогда ваш уровень детализации будет совершенно другим.

12
задан dMix 1 March 2009 в 23:49
поделиться

6 ответов

В том же духе к тому, что сказал Chuck:

<% TARGETS.each do |target| %>
  <li>
    <%= link_to target.humanize, 
      { :controller => target }, 
      class => ('active' if current_controller == target)) %>
  </li>
<% end %>
9
ответ дан 2 December 2019 в 19:55
поделиться

Выезд link_to_unless_current. Не точно, что Вы попросили, но это близко.

Кроме того, Вы могли поместить этот вид логики в помощнике для абстракции его из представления.

1
ответ дан 2 December 2019 в 19:55
поделиться

Виджеты направляющих выезда на GitHub. Это обеспечивает тонну помощников удобства для направляющих материал UI (tabnavs, подсказки, tableizers, шоу скрывает переключатель, простая CSS progressbar) в дополнение к навигации.

Вот документы

2
ответ дан 2 December 2019 в 19:55
поделиться

Довольно легко видеть, где повторение там. Это все имеет общую форму:

<% 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>
3
ответ дан 2 December 2019 в 19:55
поделиться

Немного отличающаяся версия w/link_to_unless_current:

<ul>
<% links.each do |link| -%>
<li><%= link_to_unless_current link.humanize, { :controller => target } %></li>
<% end -%>
</ul>

Хороший ресурс для материала как это является документами направляющих.

1
ответ дан 2 December 2019 в 19:55
поделиться

Обратите внимание на плагин простой навигации . Это «простой в использовании» плагин rails для создания навигации для ваших приложений rails.

1
ответ дан 2 December 2019 в 19:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: