Назначение активного класса для начальной загрузки Nav-таблетки - Ruby on Rails - PullRequest
0 голосов
/ 30 мая 2018

У меня есть раздел блога в моем приложении rails, и мне было интересно, каким будет хороший способ справиться с назначением класса CSS active на основе открытой страницы.

Если это будет сделаночерез .erb с if и do заявлениями?Необходимо будет отразить категорию, в которой находится сообщение.

Таблица категорий блогов:

create_table "blog_categories", force: :cascade do |t|
  t.string "name"
  t.integer "parent_id"
  t.datetime "created_at", null: false
  t.datetime "updated_at", null: false
end

Столбец Столбец Столбец: t.integer "category_id"- Это сохранено, чтобы относиться к .id кошки.

Мои категории представлены с parent_id из NULL, а подкатегориями являются те, с parent_id, установленным на .id изосновная категория.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Я предпочитаю, чтобы вы использовали эти помощники ниже одного для одиночного пути, например:

<li class="<%= active_class(first_path) %>">

def active_class(link_path)
 current_page?(link_path) ? 'active' : ''
end

этот для нескольких массивов ссылок, например

<li class="<%= active_class_multiple([first_path, second_path]) %>">

# pass array of paths to get current page active link
def active_class_multiple(array)
  array.include?(request.path) ? 'active' : ''
end
0 голосов
/ 30 мая 2018

Вы можете сделать это, определив функцию в вашем методе application_helper.rb

def active_class(path)
 "active" if current_page?(path)
end

current_page?, который вернется активным, если пользователь находится по тому же URL-адресу, который был передан в параметре пути.Оформить заказ Документация .

Затем вы можете использовать его следующим образом.

<li class="<%= active_class new_user_session_path %>">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...