У меня есть помощник по двум рельсам:
def active_class(link_path)
current_page?(link_path) ? 'active' : ''
end
def active_class_white(link_path)
current_page?(link_path) ? 'active-white' : ''
end
Один для обычных ссылок, другой для подменю. Обычно я размещаю ссылку так:
<%= link_to "Home", root_path(:anchor => 'home'), class: "nav-link #{active_class('/')}", :"data-id" => "home" %>
Теперь вот моя проблема. На моей домашней странице я получил эту ссылку, по которой она будет перемещаться в определенный раздел сайта, поэтому требуется символ, такой как #about
. Если я размещу:
<%= link_to "About", root_path(:anchor => 'about'), class: "nav-link #{active_class('/#about')}", :"data-id" => "about" %>
Он по-прежнему помещает активный класс в текст home
вместо about (домашняя страница - это одностраничный слайдер).
Другое дело, что для сложных URL, таких как профиль редактирования устройства, я попытался поместить ff:
<%= link_to "Edit Profile", edit_user_registration_path(current_user), class: "dropdown-item #{active_class_white('/users/edit/:id')}" %>
Размещение /users/edit/:id
не работает на URL такого типа: http://localhost:3000/users/edit.13
На этом два вида URL мой код не работает. Любая идея, как заставить их работать или перевернуть это?