Я создаю способ, позволяющий легко включать навигацию (вкладки и субнави) в мои представления. Я должен иметь возможность иметь разные навигации для разных контроллеров и для разных действий внутри этих контроллеров.
В настоящее время я использую этот простой вспомогательный метод:
def nav_for(tabs_hash, *active_tabs)
content_tag(:div,
tabs_hash[:tab_info].map { |tab| tab == 'spacer' ?
content_tag(:div, '', :class => 'nav-spacer') :
link_to(tab[:name], tab[:path], :class => [tab[:class], ("active" if active_tabs.include? tab[:id])].join)
}.join("\n").html_safe,
:class => tabs_hash[:div_class])
end
Который берет хеш, который включает в себя информацию для элементов навигации и анализирует ее. Я помещаю эти хэши в методы контроллеров, но это не позволяет мне получить доступ к хэшам навигации из других контроллеров.
Мой вопрос: где было бы лучшее место для хранения навигационной информации? Также важно, чтобы у него был доступ к параметрам, поскольку некоторые ссылки генерируются динамически на основе строк запроса.
Я просто ищу лучшие практики для этого сценария. Спасибо!