Есть ли элегантный способ показать активный стиль гиперссылки? - PullRequest
0 голосов
/ 07 мая 2020

Возможно, я что-то упустил, но обнаружил, что показывать условные атрибуты в рельсах довольно сложно. Многие программисты используют для этого вспомогательные методы, но это все еще кажется утомительной задачей. Интересно, есть ли у кого-нибудь изящный метод достижения этого.

Для ясности, допустим, у нас есть некий компонент css, как показано ниже (этот пример взят из github opensource css framework: https://primer.style/css/components/navigation), так как мне изменить атрибут 'aria-current': 'page'?

<nav class="UnderlineNav UnderlineNav--right">
  <div class="UnderlineNav-body">
    <a class="UnderlineNav-item" href="#url" aria-current="page">Item 1</a>
    <a class="UnderlineNav-item" href="#url">Item 2</a>
    <a class="UnderlineNav-item" href="#url">Item 3</a>
    <a class="UnderlineNav-item" href="#url">Item 4</a>
  </div>
</nav>

1 Ответ

1 голос
/ 07 мая 2020

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

def active_header_link(text, slug, options)
    if current_page? slug
      link_to text, slug, {'aria-current': 'page'}.merge(options)
    else
      link_to text, slug, options
    end
  end

тогда просто назовите его, когда обязательно вот так

<%= active_header_link node.name, node_path(node.slug), class: 'UnderlineNav-item' %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...