Подсветка классов на основе секций или контроллеров в представлениях Rails 3.2 - PullRequest
0 голосов
/ 29 января 2012

Я посмотрел на эту статью и получаю странное поведение в части HAML. Когда я получаю доступ к двум различным действиям контроллера, один экземпляр работает, в то время как другой отказывает. Вот код:

= link_to_unless_current(t('some.string', :en=>'SomeString'), '/url',{:class=>(controller.controller_name == 'randomController' ? 'current' : 'header-link')})

Когда я вывожу = controller.controller_name в любом представлении, я получаю 'randomController.' На главной странице листинга (где все объекты показаны с разбивкой на страницы), класс не применяется, но при переходе на страницу «show» класс внезапно появляется. Поскольку контроллер одинаков для обоих (в обоих случаях печатается одна и та же строка), почему класс не применяется одинаково?

В общем, есть ли лучший способ стилизовать ссылки на основе текущего контроллера вместо проверки имени контроллера? Помощник current_page требует как действия «контроллер +», так что здесь он не подходит.

1 Ответ

0 голосов
/ 29 января 2012

Я собираюсь пометить это как ответ на случай, если другие столкнутся с той же проблемой. Надеюсь, это правильно форматирует:

     = link_to_unless_current(t('some.string', :en=>'SomeString'), '/url',{:class=>(controller.controller_name == 'randomController' ? 'current' : 'header-link')})  do 
        %span.current
            = (t('some.string', :en=>'SomeString'

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

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