2015-04-23 11 views
0

Я вложенные маршруты в моем routes.rb«если оператор» для вложенных маршрутов

resources :companies do 
    resources :employees 
    resources :accounts 
end 

В верхнем меню я хочу показать определенную связь, когда пользователь находится в контроллере компании или вложенных контроллеры (сотрудники, счета). Итак, я хочу простое «if statement» для этого.

Я пробовал несколько подходов.

<%= if params[:company_id].present? %> # doesn't work in company views 
    # certain link 
<% end %> 

<%= if current_page?(controller: 'companies') %> # doesn't work in nested controllers' views 
    # certain link 
<% end %> 

Конечно, можно использовать оба с or, но я думаю, что это может быть лучшим способом для этого.

Спасибо!

ответ

0

Вы можете использовать controller_name:

<% if controller_name.match(/^companies/) %> 
    # certain link 
<% end %> 

UPDATE
Кроме того, использование controller_path:

<% if controller_path.match(/^companies/i) %> 
    # certain link 
<% end %> 
+0

Неа. Не работает во вложенных представлениях. Для примера: 'domain.com/companies/1/accounts/3' –

+0

@PeterTretyakov, можете ли вы проверить мой второй метод? Если это сработает для вас, я уничтожу первый. –

Смежные вопросы