Задать вопрос

Rails добавить class="active" когда url в рамках одного controller (:resources)?

Этот хелпер гулится на stack overflow.
def current_link_to label, path
  link_to label, path, class: (current_page?(path) ? "active" : nil)
end

Помогите мне стаковерфлоу программисту добавить проверку на совпадения url и контроллера.
  • Вопрос задан
  • 2559 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 2
viktorvsk
@viktorvsk
if params[:controller] == "MyController"
Ответ написан
Vakiliy
@Vakiliy
def current_link_to label, path  
  from_path = controller._routes.recognize_path(path).values rescue nil
  css = from_path & [controller_name, action_name] ==  from_path ?  'active' : nil
  link_to label, path, class:  css
end
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Piranis
@Piranis Автор вопроса
 Ошибка:

No route matches {:action=>"index", :controller=>"welcome"}
Extracted source (around line #13):
10

   			%h1.logo Флайда
   			%ul.menu
   				%li
   					= current_link_to 'Главная', root_path


говорит нет такого routes для root_path и правильно говорит в routes.rb следующее:

resources :services
  root :to => 'welcome#hi'
  get 'contacts' => 'welcome#contacts'


То есть есть такиой акшн hi для контрола welcome
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы