#ruby-on-rails #twitter-bootstrap
#ruby-on-rails #twitter-bootstrap
Вопрос:
У меня есть приложение ruby on rails, которое включает заголовочный файл на каждой странице.
Теперь я хочу установить активные пути.
<li class="<%= 'active' if current_page?(users_path) %> dropdown">test</li>
Это работает без проблем.
Теперь у меня есть страница для создания нового пользователя => users/new
. Итак, я попробовал с request.path_parameters
<% if ((request.path_parameters[:controller] == "users") amp;amp; (request.path_parameters[:action] == "new")) %>
<li class="active dropdown">test</li>
<% end %>
Проблема в том, что if-условие выполняется всегда true
.
Я могу изменить его на:
<% if ((request.path_parameters[:controller] == "userstest") amp;amp; (request.path_parameters[:action] == "newtest")) %>
<li class="active dropdown">test</li>
<% end %>
и это все еще верно.
Кто-нибудь знает решения для этого?
Когда я пытаюсь:
current_page?(url_for(:controller => 'users', :action => 'new'))
я получаю No route matches
-ошибку
Комментарии:
1. почему вы не можете использовать свой вспомогательный метод и для пользователей / новичков тоже? что-то вроде:
<li class="<%= 'active' if current_page?(your_path_for_new_action) %> dropdown">test</li>
. Ваши пути не могут быть одинаковыми, и я не думаю, что вам потребуется ваш метод post, такой как create или destroy с помощью метода delete
Ответ №1:
Используйте == вместо =
<% if ((request.path_parameters[:controller] == "users") amp;amp; (request.path_parameters[:action] == "new")) %>
<li class="active dropdown">test</li>
<% end %>
Также доступны вспомогательные методы для получения контроллера и действия.
controller_name
и action_name
Комментарии:
1. Спасибо за этот вопрос. Спасибо! Моя ошибка. Слишком долго сижу перед этим кодом.