Rails 3 - ссылка на URL для определения, является ли элемент Nav классом = "selected" - PullRequest
1 голос
/ 07 октября 2010

Приложение может иметь следующие URL-адреса:

/ projects / / проекты / 3 / проекты / 3 / фотографии / проекты / 3 / фотографии / 312

Я хотел бы знать, как в Rails 3 я могу посмотреть текущий URL и узнать, какая из строк выше активна в настоящее время, поэтому я могу добавить class = "selected"

Дополнительный пример ..

Если браузер пользователя включен: / projects

А навигация выглядит как

Проекты - Фото - файлы

Проекты активны

но если браузер пользователя включен: / files

Проекты активны

и Файлы активны (они оба применяются).

Идеи? спасибо

Ответы [ 4 ]

1 голос
/ 23 сентября 2011

Если я вас правильно понимаю, не хотите ли вы использовать: current_page?(your_page_path)

1 голос
/ 07 октября 2010

Всегда есть доступ к хэшу params, так что вы можете проверить params [: controller] или params [: action] в любом месте ваших представлений.Всегда есть request.env ['PATH_INFO'], где также хранится полный URL-адрес.

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

Так как у вас всегда есть файлы в Project в этом конкретном представлении, в чем проблема?Разве вы не можете просто выделить проект, если выбраны файлы?

Редактировать:

Реализация действительно зависит от вашего дизайна, и если вам нужны прямые подсказки, вам нужно будет вставить ссылку кода / вставки в ваш код.В общем, идея такова:

<% if params[:controller] == :files 
  <% b1class = "active" %>
  <% b2class = "active" %>
  <% b3class = "active" %>
<% else %>
   ....
<% end %>

<div class=breadcrumb>
  <p class=<%= b1class> Project </p>
  <p class=<%= b2class> Photos </p>
  <p class=<%= b3class> Files </p>
</div>
0 голосов
/ 19 мая 2013

Для этого я просто сравниваю путь запроса с путем ресурса. В этом случае у меня есть активный класс записей, называемый «page», который содержит основные страницы, такие как home и about. Затем я создал частичное представление для каждой ссылки с именем pages / _links.html.erb:

<% if current_page?(page) %>
  <li class="active"><%= link_to "#{page.name}".html_safe, page.url.empty? ? page : page.url %></li>
<% else %>
  <li><%= link_to "#{page.name}".html_safe, page.url.empty? ? page : page.url %></li>
<% end %>

Вы можете назвать это частичное с помощью чего-то похожего на:

<%= render :partial => "pages/links", :collection => @display_pages, :as => :page %>
0 голосов
/ 08 августа 2012

Ознакомьтесь с этой статьей: Лучший способ добавить «выбранный» класс к ссылкам в Rails

Это довольно надежный помощник nav_link, который работает с несколькими сценариями, в которых необходимо добавить «выбранный» класс. Опция url_segment должна вам помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...