Rails 3 Примените класс CSS, если путь соответствует корню: пути - PullRequest
1 голос
/ 07 февраля 2011

Я очень новичок в ROR, и мне это нравится, поскольку я разрабатываю свое первое приложение. У меня есть вопрос, связанный с моим шаблоном приложения, поскольку я применяю форматирование к меню навигации.

Можно ли проверить, соответствует ли путь URL-адреса корню: пути, заданному в config.rb? У меня есть вспомогательный метод, который возвращает строку «текущий», который добавляет стиль класса CSS, чтобы выделить выбранный пункт меню. Вспомогательный метод работает нормально, пока я не на главной странице. Когда я использую URL-адрес www.localhost: 3000 / текущий класс css не применяется к ссылке "Продукты", поскольку request_uri = "/" не равно "/ products". Мне бы хотелось, чтобы класс css "current" применялся к пункту меню Products, когда я на главной странице.

Существует ли какая-либо условная логика, которую я могу использовать, чтобы получить путь root: to path и проверить, соответствует ли он пути параметра is_current?

Вот мой код:

root.rb root: указывать на индекс товаров

root: to => 'products # index'

application.html.erb

<% = link_to 'Products', products_path,: class => is_current (products_path)%> <% = link_to 'Reports', reports_path,: class => is_current (reports_path)%>

application_helper.rb

def is_current(path)
    if request.request_uri == path
        return 'current'
    end
end

Любая помощь будет принята с благодарностью.

Спасибо, bkasen

Ответы [ 2 ]

9 голосов
/ 08 февраля 2011

Будет ли это работать для вас?

if current_page? root_path

для получения дополнительной информации: http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-current_page%3F

2 голосов
/ 15 октября 2011

Если я правильно прочитал, вы хотите, чтобы "onlink" css был применен?так что, когда пользователь находится на домашней странице, домашний значок имеет другой цвет или что-то еще.Если так, то примените это в частичном заголовке или где-либо еще:

<li><%= link_to_unless_current "Home", root_path, :class => "navLinks" do link_to "Home", root_path, :class => "navLinks", :id => "onlink" end %></li>

  • Я знаю, что это старый вопрос, но он может оказаться полезным для кого-то другого:)
...