首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hanami :从视图或模板访问当前页面URL

Hanami :从视图或模板访问当前页面URL
EN

Stack Overflow用户
提问于 2019-05-01 10:23:27
回答 1查看 291关注 0票数 2

我正在发现Hanami (Hanami 1.3),我正在完善我所从事的测试项目,我无法找到从视图或模板访问当前页面url/路径的方法(正如您可能已经猜到的那样,想法是处理导航链接可视化状态)。

我试着猜助手的名字(routes.current_pageroutes.current_urlroutes.current.)但我不是幸运的。我已经检查了路由帮助文档,通过了hanami/hanamihanami/路由器存储库,但是没有找到我要找的东西。

我是不是错过了什么,还是这根本不是内置的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-01 11:11:15

这是我最后做的,暂时的。我遵循hanami文件定义了一个自定义助手,并将它提供给我的所有视图,如下所示:

创建一个Web::Helpers::PathHelper 模块

在那里,我可以访问params并请求路径:

代码语言:javascript
复制
# 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变量中,以便在应用程序加载代码时加载我的助手。

代码语言:javascript
复制
  # 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.确保每个视图都有我的新助手可用

..by使用application.rb中的view.prepare

代码语言:javascript
复制
  # 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_pathcurrent_page?(path)助手,并对它们做我需要做的事情。我不知道这是不是最直接的方式,但至少它是有效的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55934778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档