Вот что я в итоге сделал на данный момент.Я следовал документации на ханами , определил пользовательский помощник и сделал его доступным для всех моих представлений, например:
1.Создайте Web::Helpers::PathHelper
модуль
Там я могу получить доступ к параметрам и пути запроса:
# apps/web/helpers/path_helper.rb
module Web
module Helpers
module PathHelper
private
def current_path
params.env['REQUEST_PATH']
end
def current_page?(path)
current_path == path
end
end
end
end
2.Убедитесь, что каталог помощников загружен приложением
Добавлен путь helpers
к переменной load_paths
приложения, чтобы мои помощники загружались при загрузке кода приложением.
# apps/web/application.rb
# Relative load paths where this application will recursively load the
# code.
#
# When you add new directories, remember to add them here.
#
load_paths << [
'helpers',
'controllers',
'views'
]
3.Убедитесь, что мой новый помощник доступен для каждого вида
.. с помощью блока view.prepare
в application.rb
:
# apps/web/application.rb
# Configure the code that will yield each time Web::View is included
# This is useful for sharing common functionality
#
# See: http://www.rubydoc.info/gems/hanami-view#Configuration
view.prepare do
include Hanami::Helpers
include Web::Assets::Helpers
include Web::Helpers::PathHelper
end
4.И теперь я могу использовать своих помощников в каждом представлении!
И теперь из моего шаблона или из моих объектов просмотра я могу получить доступ к своим собственным current_path
и current_page?(path)
помощникам и делать то, что мне нужноделать с ними.Я не знаю, самый ли это простой способ, но, по крайней мере, он работает.