Я использую следующий helper
для добавления is_active
класса css к активным ссылкам в моей панели навигации.
# application_helper.rb
def active_link_to(name = nil, options = nil, html_options = nil, &block)
active_class = html_options[:active] || "is_active"
html_options.delete(:active)
html_options[:class] = "#{html_options[:class]} #{active_class}" if current_page?(options)
link_to(name, options, html_options, &block)
end
Этот код работает отлично.Тем не менее, я хочу сохранить класс is_active
на каждой странице, связанной с контроллером.Например, вот мой маршрут контроллера:
# routes.rb
resources :catalogs, path: "s", only: [:index, :show] do
resources :products, path: "", only: [:show]
end
и представьте, что у меня есть 100 различных каталогов.Я хочу сохранить is_active
на странице индекса, пока пользователь переключает показ страниц.
Ссылка на моей навигационной панели:
= active_link_to "Products", catalog_path(1), class: "navbar_link"
Обратите внимание, что в предыдущемline Я перехожу к самому первому каталогу, а не к странице index
.
Спасибо за вашу помощь и время!