2013-12-24 3 views
0

В моем приложении Rails у меня около 20 страниц, из которых 10 имеют общедоступное навигационное меню (для незарегистрированных посетителей), а 10 имеют меню администратора (для входа в систему).Самый лаконичный способ включения навигации заголовка?

сухих причин, я хотел бы

<%= render 'layouts/navigation_public' %> 

и

<%= render 'layouts/navigation_admin' %> 

из layouts/application.rb.

Но условные для двух парциальных получает очень длинными, т.е.

if params[:controller] == "users" && params[:action] == "show" || if params[:controller] == "static_pages" && params[:action] == "welcome" 

т.д.

Есть более умный/лаконичный способ включить две навигационных партиалы?

+0

Просто переместите условное выражение на вспомогательный метод –

+0

Это правда. Хороший путь. –

ответ

1

Было бы лучше, если у вас есть controller-namespaces Это даст вам Admin:: Namespace

И вы, видимо, может содержать точку для администратора /views/admin.

Если вы хотите уточнить это как /views/public, вы также можете определить public пространство имен.

+0

Отлично! И если я добавлю 'namespace: admin, part:" admin "do' ... (в' router.rb'), я получаю один ключ params, который я могу проверить в условном. (Без него params [: controller] возвращает «admin/users», «admin/projects» и т. Д. Для каждой новой «подкатегории»). –

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